Haskellians,<div><br></div><div>Some monads come with take-out options, e.g.</div><div><ul><li>List</li><li>Set</li></ul><div>In the sense that if unit : A -&gt; List A is given by unit a = [a], then taking the head of a list can be used to retrieve values from inside the monad.</div>
<div><br></div><div>Some monads do not come with take-out options, IO being a notorious example.</div><div><br></div><div>Some monads, like Maybe, sit on the fence about take-out. They&#39;ll provide it when it&#39;s available.</div>
<div><br></div><div>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?</div>
</div><div><br></div><div>Best wishes,</div><div><br></div><div>--greg<br clear="all"><br>-- <br>L.G. Meredith<br>Managing Partner<br>Biosimilarity LLC<br>806 55th St NE<br>Seattle, WA 98105<br><br>+1 206.650.3740<br><br>
<a href="http://biosimilarity.blogspot.com">http://biosimilarity.blogspot.com</a><br>
</div>