Given any functor you can get a monad for free! <div><br></div><div>data Free f a = Either a (f (Free f a))</div><div><br></div><div>Not sure about unfree, but there are cofree comonads that are pretty closely related, and give you a comonad given a functor:</div>
<div><br></div><div>data Cofree f a = (a, f (Cofree f a))<br><div><br></div><div>I&#39;m sure the more categorically minded can tell you way more.</div><div><br></div><div>Hope this helps,</div><div>Dan</div><div><br><div class="gmail_quote">
2010/2/27 Günther Schmidt <span dir="ltr">&lt;<a href="mailto:gue.schmidt@web.de">gue.schmidt@web.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello,<br>
<br>
I see the term &quot;free monad&quot; quite a lot, but don&#39;t really see an explanation what a free monad is. What sets a monad free and why in this day and age are there unfree monads?<br>
<br>
Günther<br>
<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div></div>