hash-cons-0.2.0.0: Opportunistic hash-consing data structure
Safe HaskellNone
LanguageHaskell2010

Data.HashCons.WordMap

Synopsis

Documentation

data WordMap a Source #

The main WordMap data type.

Instances

Instances details
Generic (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Associated Types

type Rep (WordMap a) 
Instance details

Defined in Data.HashCons.WordMap.Internal

type Rep (WordMap a) = D1 ('MetaData "WordMap" "Data.HashCons.WordMap.Internal" "hash-cons-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Empty" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NonEmptyMap" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HashCons (NonEmptyWordMap a)))))

Methods

from :: WordMap a -> Rep (WordMap a) x #

to :: Rep (WordMap a) x -> WordMap a #

Show a => Show (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Methods

showsPrec :: Int -> WordMap a -> ShowS #

show :: WordMap a -> String #

showList :: [WordMap a] -> ShowS #

Eq a => Eq (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Methods

(==) :: WordMap a -> WordMap a -> Bool #

(/=) :: WordMap a -> WordMap a -> Bool #

Ord a => Ord (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Methods

compare :: WordMap a -> WordMap a -> Ordering #

(<) :: WordMap a -> WordMap a -> Bool #

(<=) :: WordMap a -> WordMap a -> Bool #

(>) :: WordMap a -> WordMap a -> Bool #

(>=) :: WordMap a -> WordMap a -> Bool #

max :: WordMap a -> WordMap a -> WordMap a #

min :: WordMap a -> WordMap a -> WordMap a #

Hashable a => Hashable (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Methods

hashWithSalt :: Int -> WordMap a -> Int #

hash :: WordMap a -> Int #

type Rep (WordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

type Rep (WordMap a) = D1 ('MetaData "WordMap" "Data.HashCons.WordMap.Internal" "hash-cons-0.2.0.0-inplace" 'False) (C1 ('MetaCons "Empty" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NonEmptyMap" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HashCons (NonEmptyWordMap a)))))

data NonEmptyWordMap a Source #

Non-empty trie nodes.

Instances

Instances details
Generic (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Show a => Show (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Eq a => Eq (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Ord a => Ord (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

Hashable a => Hashable (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

type Rep (NonEmptyWordMap a) Source # 
Instance details

Defined in Data.HashCons.WordMap.Internal

empty :: WordMap a Source #

O(1). Create an empty map.

singleton :: Hashable a => Word -> a -> WordMap a Source #

O(1). Create a map with a single key-value pair.

singletonNonEmpty :: Hashable a => Word -> a -> NonEmptyWordMap a Source #

O(1). Create a map with a single key-value pair.

insert :: Hashable a => Word -> a -> WordMap a -> WordMap a Source #

O(log n). Insert a key-value pair into the map. If the key is already present, the value is replaced.

lookup :: Word -> WordMap a -> Maybe a Source #

O(log n). Lookup the value at a key in the map.

map :: Hashable b => (a -> b) -> WordMap a -> WordMap b Source #

O(n). Map a function over all values in the map.

mapWithKey :: Hashable b => (Word -> a -> b) -> WordMap a -> WordMap b Source #

O(n). Map a function over all key-value pairs in the map.

traverseWithKey :: (Applicative t, Hashable b) => (Word -> a -> t b) -> WordMap a -> t (WordMap b) Source #

O(n). Traverse the map with a function that accesses keys.

union :: Hashable a => WordMap a -> WordMap a -> WordMap a Source #

O(n). The union of two maps. If a key occurs in both maps, the value from the left map is used.

intersection :: Hashable a => WordMap a -> WordMap a -> WordMap a Source #

O(n). Intersection of two maps. Only keys present in both maps are included.

difference :: Hashable a => WordMap a -> WordMap a -> WordMap a Source #

O(n). Difference of two maps. Keys in the first map but not in the second are included.

member :: Word -> WordMap a -> Bool Source #

Check if a key is present in the map.