Description
TH-generated EnumSet/EnumMap wrappers around IntSet/IntMap.
Description
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 Enum
s, newtype'd Int
s, 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.