
Here is my understanding with respect to the question.
In the general case, you cannot come out of a monad, because the monad
typeclass does not include any functions without of the form (m a -> a).
Also, as a category theoretic construct, a monad does not have to have an
exit function. (caveat: I have a very limited grasp of what that means).
I also found myself thinking about list as a monad in terms of this
discussion. I think it's an interesting case: it's pure, but it doesn't
really make sense to "come out of it". Head, indexing, and last all break
out of it, but none of them can be the default, and all of them require you
to consider it as something more than its monad-ness.
On Fri, Jul 30, 2010 at 3:11 PM, Stefan Holdermans wrote: Martijn, In fact, I would argue that a monad which you cannot escape from is not
very useful at all. IO is the only exception I know of. And that's only because, at least the runtime system allows for execution
of a computation inside the IO monad at top-level. Cheers, Stefan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe --
Alex R