Container type classes

Andreas Klebinger klebinger.andreas at
Wed May 29 10:48:17 UTC 2019

ghc-devs-request at schrieb:
> Hello,
> I think refactoring to use consistent naming is a good idea, but I am
> not sure about the class idea.
> To see if it is viable, we should list the types in question and the
> operations we'd like to overload.
> I find that with containers there tend to be two cases: either the
> operations are similar but not exactly the same and you have to do
> type hackery to make things fit, or you realize that you can just use
> the same type in multiple places.
> Iavor
The function prototype are already part of the merge request. See here:

As for the data structures in question these are:
* EnumSet
* Data.IntSet
* Data.Set
* UniqSet
* UniqDSet

* Data.IntMap
* Data.Map
* LabelMap
* UniqFM
* UniqDFM
* UniqMap

* Maybe the TrieMap Variants

Maybe I missed some but these are all I can think of currently. But they
are already plenty.

Imo using type classes IS a kind of type hackery required "to make
things fit".

More information about the ghc-devs mailing list