I haven't found a downside to requiring that the elements of sets be `Ord` to be `MonoFoldable`. Yes, the dictionary is ignored by all the generic methods, but you still needed it to construct the `Set`.
`MonoFoldable` includes some questionable design choices, but the `Ord` requirement for `Set` is not one.

Sent from my phone with K-9 Mail.


On 30 January 2022 05:19:46 UTC, David Feuer <david.feuer@gmail.com> wrote:
MonoFoldable isn't the answer either. That also has the problem of requiring the same constraint for folding as for membership tests.

On Sun, Jan 30, 2022, 12:12 AM PHO <pho@cielonegro.org> wrote:
On 1/30/22 9:59 AM, David Feuer wrote:
[snip]
> . I think the real answer is to remove `elem` from `Foldable` and put
> it somewhere more appropriate.

In a separate class? That would only help `elem` but not any other
methods of Foldable. I'd rather love to see MonoFoldable[1] to be moved
to base then.

[1]:
https://hackage.haskell.org/package/mono-traversable-1.0.15.3/docs/Data-MonoTraversable.html#t:MonoFoldable
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries