If you had an `RWST r Void s m a`, then you would be able to produce an `m (a, s, Void)`, which is `absurd`.On Sun, 13 Jan. 2019, 6:43 pm Javran Cheng, <javran.c@gmail.com> wrote:(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@gmail.com> wrote:On Sun, Jan 13, 2019 at 4:00 PM Javran Cheng <javran.c@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
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.