Discussion: Allow custom constraint for elem in Foldable
Henning Thielemann
lemming at henning-thielemann.de
Fri Jul 28 06:42:57 UTC 2017
On Thu, 27 Jul 2017, David Feuer wrote:
> The Foldable class offers the method
>
> elem :: Eq a => a -> t a -> Bool
>
> Unfortunately, this is really awful for sets, hash maps, etc. See
> https://stackoverflow.com/questions/45361801/implement-an-olog-n-foldable-elem-for-binary-search-trees-in-haskell#45362110
> for an example.
I'd prefer to keep Foldable Haskell-98. You may introduce methods with
advanced types in a sub-class.
I also think that the Set type does not perfectly fit to Foldable. Most
Set methods require Ord constraint, but Set.toList does not. Only this
allows to have instance Foldable Set. This looks to me like an
implementation detail. E.g. for Vector.Storable this trick does not work.
You cannot omit the Storable constraint in Vector.toList.
More information about the Libraries
mailing list