procedure" more than you need a monad (though a solution is likely to use a state monad to track the number of fish in the tank). How would you want to account for days? E.g. Do you want to run for a month (dropping actions outside the time frame) or do you want to run until the last action occurs?