On Fri, Oct 30, 2009 at 5:59 PM, Luke Palmer <[email protected]> wrote:
> On Fri, Oct 30, 2009 at 10:39 AM, Tom Davie <[email protected]> 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. > Cool, thanks Luke, that explains why this is available in Stream, but not in ZipList too. Bob
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
