This package provides types similar to those found in containers. However, they are backed by contiguous arrays instead of trees. These should perform better for lookups but worse for any kind of update.
These nearly-identical module interfaces are accomplished by internal use of backpack, which allows us to parameterize over a constraint.
data Set a
instance (Eq a, Prim a) => Eq (Set a)
instance (Ord a, Prim a) => Ord (Set a)
instance (Show a, Prim a) => Show (Set a)
instance Prim a => Semigroup (Set a)
instance Prim a => Monoid (Set a)
lookup :: Prim a => Set a -> Maybe a
singleton :: Prim a => a -> Set a
data Set a
instance (Eq a, PrimUnlifted a) => Eq (Set a)
instance (Ord a, PrimUnlifted a) => Ord (Set a)
instance (Show a, PrimUnlifted a) => Show (Set a)
instance PrimUnlifted a => Semigroup (Set a)
instance PrimUnlifted a => Monoid (Set a)
lookup :: PrimUnlifted a => Set a -> Maybe a
singleton :: PrimUnlifted a => a -> Set a
data Set a
instance Eq a => Eq (Set a)
instance Ord a => Ord (Set a)
instance Show a => Show (Set a)
instance Semigroup (Set a)
instance Monoid (Set a)
lookup :: Set a -> Maybe a
singleton :: a -> Set a