
On Sonntag, 5. Juni 2011, 21:43, Sean Charles wrote:
I can see that the term 'action' is one I need to use more in my head when thinking about monads...
Well, that doesn't fit all Monads either. Action is great for IO, but not helpful for [] or Maybe. There are several widely used pictures illustrating monads, each fits some better than others. The monads-as-containers picture works great for [], Maybe (those really *are* containers) and some more or less related monads. It doesn't really work well for IO, State, Cont and some more or less related monads. The monads-as-computations picture works great for Cont, State and some related monads, less for [], Maybe, IO (it does work for those too, just less well). The problem is that Monad is a very general and abstract concept, capturing widely different things, which need not have anything except the Monad structure in common.