[Haskell-cafe] monads with take-out options

Greg Meredith lgreg.meredith at biosimilarity.com
Mon Nov 24 17:06:33 EST 2008

Some monads come with take-out options, e.g.

   - List
   - Set

In the sense that if unit : A -> List A is given by unit a = [a], then
taking the head of a list can be used to retrieve values from inside the

Some monads do not come with take-out options, IO being a notorious example.

Some monads, like Maybe, sit on the fence about take-out. They'll provide it
when it's available.

Now, are there references for a theory of monads and take-out options? For
example, it seems that all sensible notions of containers have take-out. Can
we make the leap and define a container as a monad with a notion of
take-out? Has this been done? Are there reasons for not doing? Can we say
what conditions are necessary to ensure a notion of take-out?

Best wishes,


L.G. Meredith
Managing Partner
Biosimilarity LLC
806 55th St NE
Seattle, WA 98105

+1 206.650.3740

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20081124/d29eb65c/attachment.htm

More information about the Haskell-Cafe mailing list