
I don't remember why right now, but it's moderately well-known that there
is no possible Monad instance compatible with the Applicative instance for
ZipList. See the answers to
https://stackoverflow.com/questions/6463058/help-on-writing-the-colist-monad...
by pigworker (Conor McBride) and C. A. McCann.
On Thu, Jun 4, 2020, 2:53 AM Dannyu NDos
instance Monad ZipList where ZipList [] >>= _ = ZipList [] ZipList (x:xs) >>= f = ZipList $ do let ZipList y' = f x guard (not (null y')) let ZipList ys = ZipList xs >>= ZipList . join . maybeToList . fmap snd . uncons . getZipList . f head y' : ys
instance MonadFail ZipList where fail _ = empty
instance MonadPlus ZipList _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries