<div dir="auto">To add documentation, we need an explanation of *why* it's impossible.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 4, 2020, 11:35 AM chessai . <<a href="mailto:chessai1996@gmail.com">chessai1996@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Agreed, that would be a great addition.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 4, 2020, 8:31 AM Simon Jakobi <<a href="mailto:simon.jakobi@googlemail.com" target="_blank" rel="noreferrer">simon.jakobi@googlemail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This sounds worth documenting though.<br>
<br>
Dannyu, would you be interested in updating the ZipList docs to say<br>
why it doesn't have a Monad instance?<br>
<br>
Cheers,<br>
Simon<br>
<br>
Am Do., 4. Juni 2020 um 17:21 Uhr schrieb chessai . <<a href="mailto:chessai1996@gmail.com" rel="noreferrer noreferrer" target="_blank">chessai1996@gmail.com</a>>:<br>
><br>
> David is right. This can't happen, unfortunately<br>
><br>
> On Thu, Jun 4, 2020, 12:48 AM David Feuer <<a href="mailto:david.feuer@gmail.com" rel="noreferrer noreferrer" target="_blank">david.feuer@gmail.com</a>> wrote:<br>
>><br>
>> 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 <a href="https://stackoverflow.com/questions/6463058/help-on-writing-the-colist-monad-exercise-from-an-idioms-intro-paper" rel="noreferrer noreferrer noreferrer" target="_blank">https://stackoverflow.com/questions/6463058/help-on-writing-the-colist-monad-exercise-from-an-idioms-intro-paper</a> by pigworker (Conor McBride) and C. A. McCann.<br>
>><br>
>> On Thu, Jun 4, 2020, 2:53 AM Dannyu NDos <<a href="mailto:ndospark320@gmail.com" rel="noreferrer noreferrer" target="_blank">ndospark320@gmail.com</a>> wrote:<br>
>>><br>
>>> instance Monad ZipList where<br>
>>>     ZipList [] >>= _ = ZipList []<br>
>>>     ZipList (x:xs) >>= f = ZipList $ do<br>
>>>         let ZipList y' = f x<br>
>>>         guard (not (null y'))<br>
>>>         let ZipList ys = ZipList xs >>= ZipList . join . maybeToList . fmap snd . uncons . getZipList . f<br>
>>>         head y' : ys<br>
>>><br>
>>> instance MonadFail ZipList where<br>
>>>     fail _ = empty<br>
>>><br>
>>> instance MonadPlus ZipList<br>
>>> _______________________________________________<br>
>>> Libraries mailing list<br>
>>> <a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
>>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
>><br>
>> _______________________________________________<br>
>> Libraries mailing list<br>
>> <a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
><br>
> _______________________________________________<br>
> Libraries mailing list<br>
> <a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>
</blockquote></div>