Map with a different Monoid instance

Michael Snoyman michael at snoyman.com
Thu May 25 19:43:37 UTC 2017


On Thu, May 25, 2017 at 11:38 AM, Mario Blažević <mblazevic at stilo.com>
wrote:

> On 2017-05-25 12:55 PM, 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!
>>
>
> Data.Map.Monoidal is not strictly correct but would give a pretty good
> idea at first glance.
>
> Data.Map.Symmetric would be more correct, since its Semigroup and Monoid
> instances would be symmetric, with no preference for the left argument as
> currently.
>
>
>
Just to throw out an option here: Unbiased. I don't feel strongly about it,
but thought throwing it out may be helpful.


> 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.
>>
>
>         I think it would be better to keep the API exactly the same, much
> like Data.Map.Strict does. I don't want to think about the incidental API
> differences when I switch from one module to another. If you're going to
> modernize, modernize all the modules at once. That's what version numbers
> are for.
>

+1. I'd also argue against changing the API right now.

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170525/b678d51b/attachment.html>


More information about the Libraries mailing list