Add instance Monad ZipList

David Feuer david.feuer at gmail.com
Thu Jun 4 15:56:28 UTC 2020


To add documentation, we need an explanation of *why* it's impossible.

On Thu, Jun 4, 2020, 11:35 AM chessai . <chessai1996 at gmail.com> wrote:

> Agreed, that would be a great addition.
>
> On Thu, Jun 4, 2020, 8:31 AM Simon Jakobi <simon.jakobi at googlemail.com>
> wrote:
>
>> This sounds worth documenting though.
>>
>> Dannyu, would you be interested in updating the ZipList docs to say
>> why it doesn't have a Monad instance?
>>
>> Cheers,
>> Simon
>>
>> Am Do., 4. Juni 2020 um 17:21 Uhr schrieb chessai . <
>> chessai1996 at gmail.com>:
>> >
>> > David is right. This can't happen, unfortunately
>> >
>> > On Thu, Jun 4, 2020, 12:48 AM David Feuer <david.feuer at gmail.com>
>> wrote:
>> >>
>> >> 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-exercise-from-an-idioms-intro-paper
>> by pigworker (Conor McBride) and C. A. McCann.
>> >>
>> >> On Thu, Jun 4, 2020, 2:53 AM Dannyu NDos <ndospark320 at gmail.com>
>> wrote:
>> >>>
>> >>> 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 at haskell.org
>> >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>> >>
>> >> _______________________________________________
>> >> Libraries mailing list
>> >> Libraries at haskell.org
>> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>> >
>> > _______________________________________________
>> > Libraries mailing list
>> > Libraries at haskell.org
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20200604/47cf271e/attachment.html>


More information about the Libraries mailing list