<div dir="auto">Let me be more specific. Whereas we can get intuition for Foldable from<div dir="auto"><br></div><div dir="auto">    toList :: t a -> [a]<div dir="auto"><br></div><div dir="auto">we get intuition for Bifoldable from the hypothetical</div><div dir="auto"><br></div><div dir="auto">    toEitherList :: t a b -> [Either a b]</div><div dir="auto"><br></div><div dir="auto">This seems quite reasonable for some types.</div><div dir="auto"><br></div><div dir="auto">    data Loost a b</div><div dir="auto">      = Nool</div><div dir="auto">      | Corns b (Loost a b)</div><div dir="auto">      | Colns a (Loost a b)</div><div dir="auto"><br></div><div dir="auto">But for something like</div><div dir="auto"><br></div><div dir="auto">    newtype Plist a b</div><div dir="auto">      = PNil</div><div dir="auto">      | PCons a b (PList a b)</div><div dir="auto"><br></div><div dir="auto">it feels awfully strange. Independent parts of the structure just get lumped together.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 30, 2020, 8:33 PM David Feuer <<a href="mailto:david.feuer@gmail.com" target="_blank" rel="noreferrer">david.feuer@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">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?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2020, 9:46 PM David Feuer <<a href="mailto:david.feuer@gmail.com" rel="noreferrer noreferrer" target="_blank">david.feuer@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">I would go as far as to say we don't need to continue the proposal process here. We're doing it.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2020, 9:44 PM David Feuer <<a href="mailto:david.feuer@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">david.feuer@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">This seems eminently reasonable to me. We must also be sure to add one to Data.HashMap if that's missing too.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 13, 2020, 9:36 PM Joseph C. Sible <<a href="mailto:josephcsible@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">josephcsible@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'd like to propose a change to the containers package: adding a<br>
Bifoldable instance to Map. I briefly mentioned this on Reddit [1] and<br>
no obvious problems were brought up. I submitted a PR implementing it<br>
[2]. This seems like an obvious and straightforward instance to me.<br>
Thoughts?<br>
<br>
Joseph C. Sible<br>
<br>
[1]: <a href="https://old.reddit.com/r/haskell/comments/fsgqd6/monthly_hask_anything_april_2020/fn90d6k/" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://old.reddit.com/r/haskell/comments/fsgqd6/monthly_hask_anything_april_2020/fn90d6k/</a><br>
[2]: <a href="https://github.com/haskell/containers/pull/714" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/haskell/containers/pull/714</a><br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>