Hi devs,

In the work on simplifying the error-message infrastructure (heavy lifting by 
Alfredo, in cc), I've been tempted (twice!) to add

> instance Semigroup (Bag a) where
>   (<>) = unionBags
> 
> instance Monoid (Bag a) where
>   mempty = emptyBag

to GHC.Data.Bag.

The downside to writing these is that users might be tempted to write e.g. 
mempty instead of emptyBag, while the latter gives more information to readers 
and induces less manual type inference (to a human reader). The upside is that 
it means Bags work well with Monoid-oriented functions, like foldMap.

I favor adding them, and slipped them into !5509 (a big commit with lots of 
other stuff). Alfredo rightly wondered whether this decision deserved more 
scrutiny, and so I'm asking the question here.

What do we think?

Thanks,
Richard
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to