/primitive-containers

Map and Set over contiguous memory

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

primitive-containers

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.

Interfaces

These nearly-identical module interfaces are accomplished by internal use of backpack, which allows us to parameterize over a constraint.

Data.Set.Unboxed

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.Unlifted

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.Unlifted

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