Map with a different Monoid instance

Henning Thielemann lemming at henning-thielemann.de
Thu May 25 22:00:15 UTC 2017


On Thu, 25 May 2017, David Feuer wrote:

> A lot of people have wrappers around Data.Map and Data.IntMap to give them more useful (Semigroup and) Monoid
> instances. I'd like to add such wrappers to containers. What we need to be able to do that are *names* for the
> new modules. I can't think of any, so I'm reaching out to the list. Please suggest names! Another question is
> whether we should take the opportunity of new modules to modernize and streamline the API a bit. I'd like, at
> least, to separate "safe" from "unsafe" functions, putting the unsafe ones in .Unsafe modules.

There are a lot notions of "unsafe", some mean "partial" others mean 
"breaks abstraction" others mean "can do IO although type signature 
promises not to do so". I think we should stick to the notion of "safe" as 
in "unsafePerformIO" and "SafeHaskell". In this respect all functions in 
Data.Map are safe, aren't they? Functions that may break abstraction can 
be exported by "Internal" modules - which already exist.


More information about the Libraries mailing list