This package wraps IntSet and IntMap from containers, and provides
fast sets and maps keyed on any data type with a well-behaved Enum
instance. Useful for derived Enums, newtype'd Ints, or any data type
that can be packed into an Int: just implement fromEnum and toEnum.
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.
Note that Data.EnumMap.Lazy and Data.EnumMap.Strict provide distinct
newtype wrappers, and their respective Functor instances behave as
expected, unlike that of IntMap which is alway lazy.