Dan Piponi wrote: > IOn Feb 11, 2008 9:46 AM, Miguel Mitrofanov <[EMAIL PROTECTED]> wrote: >> It's well known that "ListT m" monad violates this law in general >> (though it satisfies it for some particular monads m). For example, > > I went through this example in quite a bit of detail a while ago and > wrote it up here: > http://sigfpe.blogspot.com/2006/11/why-isnt-listt-monad.html . I tried > to show not just why the monad laws fails to hold for ListT [], but > also show how it almost holds.
...and the Unimo paper[1] explains how to easily write a 'correct' ListT. BTW, Unimo is an extreme case of the monad laws holding only w.r.t. the 'right' equality, i.e. in the laws m == m' is to be understood as observe_monad m == observe_monad m' (and even this '==' is of course /not/ the Eq class method but a semantic equality.) [1] http://web.cecs.pdx.edu/~cklin/papers/unimo-143.pdf Cheers Ben _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe