[Haskell-cafe] Fwd: Void is not Monoid?

Javran Cheng javran.c at gmail.com
Sun Jan 13 08:43:02 UTC 2019


(forgot to reply all, sorry)

Hi Will,

Thanks for the reply!

> A monoid has an identity element, and void does not.

now I feel dull never thought about that.

> How would you write return with void as the writer?
> You can accomplish what you want with the free monoid over Void - i.e.
[Void], which is isomorphic to unit. So unit seems like the right choice.

Unit does work fine, but I figure using Void is an interesting idea, as I
can make sure that no one can use the "W" part of my RWST.

Javran


On Sun, Jan 13, 2019 at 12:23 AM William Yager <will.yager at gmail.com> wrote:

> On Sun, Jan 13, 2019 at 4:00 PM Javran Cheng <javran.c at gmail.com> wrote:
>
>> Hi Cafe,
>>
>> I'm wondering why Data.Void does not have a Monoid instance, or, what
>> would be the problem if we do "mempty = absurd mempty"?
>>
>
> This diverges, does it not?
>
> A monoid has an identity element, and void does not.
>
>
>> Long story: I was using a monad with some transformers, then I realize I
>> can collapse State and Reader into RWST with Void being Writer output.
>> (well, I could have just used Unit but I wanna give Void a try...) I know
>> beforehand that Void is Semigroup but is a bit surprise it doesn't have
>> Monoid instance.
>>
>
> How would you write return with void as the writer?
>
> You can accomplish what you want with the free monoid over Void - i.e.
> [Void], which is isomorphic to unit. So unit seems like the right choice.
>
> --Will
>


-- 
Javran (Fang) Cheng


-- 
Javran (Fang) Cheng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20190113/c510a705/attachment.html>


More information about the Haskell-Cafe mailing list