Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Daniel Peebles <pumpkingod <at> gmail.com>
Subject: A more useful Monoid instance for Data.Map
Newsgroups: gmane.comp.lang.haskell.libraries
Date: Saturday 28th April 2012 01:04:10 UTC (over 4 years ago)
Hi all,

Currently Data.Map has a Monoid instance, but it's rather lossy and not as
general as it could be:

instance (Ord k) => Monoid (Map k v) where    mempty  = empty
mappend = union    mconcat = unions


The instance would be much nicer if it required a Monoid on v and used
unionWith mappend instead of just union. The current behavior could be
emulated by using First/Last as the Monoid (or ideally a semigroup,
but that's or another discussion), but other more interesting Monoid
instances could also be used for the values.

I realize that changing instances could break code, but I'd be curious
to see how many people even use the current monoid instance. Does
anyone have any system for testing hypotheses like this (by
typechecking a large randomized chunk of hackage or something)?

It looks like the idea has been around for at least five years:
http://hackage.haskell.org/trac/ghc/ticket/1460
but the proposal was
abandoned, so I wanted to see if I could get people to start talking
about it again.

Thanks,

Dan
 
CD: 15ms