On Friday, 19 April 2013 at 19:02:51 UTC, Idan Arye wrote:
OK, so it's not a formal monad, but it has the same idea of - "an action that chooses the next action based on the results of previous actions" - for the same purpose - "insert additional operations around a program's domain logic".
Monad don't perform action. They describe an action to be performed by something else. Usually a lib or the runtime (as in Haskell).