This package wraps
containers, and provides
fast sets and maps keyed on any data type with a well-behaved
instance. Useful for derived
Ints, or any data type
that can be packed into an
Int: just implement
The boilerplate is generated using Template Haskell, so unlike
enummapset it's easier to maintain and keep up-to-date with
containers. On the downside, it's less portable.
Data.EnumMap.Strict provide distinct
newtype wrappers, and their respective
Functor instances behave as
expected, unlike that of
IntMap which is alway lazy.