On Fri, Oct 30, 2009 at 10:39 AM, Tom Davie <tom.da...@gmail.com> wrote: > Of note, there is a sensible monad instance for zip lists which I *think* > agrees with the Applicative one, I don't know why they're not monads: > instance Monad (ZipList a) where > return = Ziplist . return > join (ZipList []) = ZipList [] > join (ZipList (a:as)) = zlHead a `zlCons` join (map zlTail as)
IIRC, that doesn't satisfy the associativity law, particularly when you are joining a list of lists of different lengths. 2 minutes of experimenting failed to find me the counterexample though. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe