Bifoldable instance for Map

George Wilson george at wils.online
Sun May 31 05:20:06 UTC 2020


If you have a non-commutative monoid, the result could easily be
different than you expect. eg. if you think it would do all keys and
then all values, rather than interleaving (which is I assume the most
efficient to implement).
Despite that I'm still +1 on this.

On Sun, 31 May 2020 at 14:59, Joseph C. Sible <josephcsible at gmail.com> wrote:
>
> I'll admit I don't have a strong use case for this. I was just looking
> at instances and noticed that these seemed to be a weird omission,
> since there was an obvious definition. But I also don't think it's
> confusing at all. Since (,), Set, and HashSet are Foldable, and (,)
> and (,,) x are Bifoldable, it seems only logical to have Map and
> HashMap be Bifoldable too. What exactly would be confusing about any
> of these?
>
> Joseph C. Sible
>
> On Sat, May 30, 2020 at 8:33 PM David Feuer <david.feuer at gmail.com> wrote:
> >
> > Let me take that back. I forgot how weird Bifoldable and Bitraversable are for product types and product-like types. Is this instance actually useful for anything, or is it mostly confusing?
> >
> > On Mon, Apr 13, 2020, 9:46 PM David Feuer <david.feuer at gmail.com> wrote:
> >>
> >> I would go as far as to say we don't need to continue the proposal process here. We're doing it.
> >>
> >> On Mon, Apr 13, 2020, 9:44 PM David Feuer <david.feuer at gmail.com> wrote:
> >>>
> >>> This seems eminently reasonable to me. We must also be sure to add one to Data.HashMap if that's missing too.
> >>>
> >>> On Mon, Apr 13, 2020, 9:36 PM Joseph C. Sible <josephcsible at gmail.com> wrote:
> >>>>
> >>>> I'd like to propose a change to the containers package: adding a
> >>>> Bifoldable instance to Map. I briefly mentioned this on Reddit [1] and
> >>>> no obvious problems were brought up. I submitted a PR implementing it
> >>>> [2]. This seems like an obvious and straightforward instance to me.
> >>>> Thoughts?
> >>>>
> >>>> Joseph C. Sible
> >>>>
> >>>> [1]: https://old.reddit.com/r/haskell/comments/fsgqd6/monthly_hask_anything_april_2020/fn90d6k/
> >>>> [2]: https://github.com/haskell/containers/pull/714
> >>>> _______________________________________________
> >>>> Libraries mailing list
> >>>> Libraries at haskell.org
> >>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries


More information about the Libraries mailing list