list-tries-0.5.1: Tries and Patricia tries: finite sets and maps for list keys

Safe HaskellSafe-Inferred

Data.ListTrie.Base.Map

Synopsis

Documentation

class Foldable (m k) => Map m k whereSource

Minimal complete implementation:

For decent performance, supplying at least mapAccumWithKey and filter as well is probably a good idea.

Methods

eqCmp :: m k a -> k -> k -> BoolSource

Like an Eq instance over k, but should compare on the same type as m does. In most cases this can be defined just as const (==).

empty :: m k aSource

singleton :: k -> a -> m k aSource

doubleton :: k -> a -> k -> a -> m k aSource

Precondition: the two keys differ

null :: m k a -> BoolSource

lookup :: k -> m k a -> Maybe aSource

insertWith :: (a -> a -> a) -> k -> a -> m k a -> m k aSource

Strictness can be whatever is more optimal for the map type, shouldn't matter

insert :: k -> a -> m k a -> m k aSource

update :: (a -> Maybe a) -> k -> m k a -> m k aSource

adjust :: (a -> a) -> k -> m k a -> m k aSource

delete :: k -> m k a -> m k aSource

alter :: (Maybe a -> Maybe a) -> k -> m k a -> m k aSource

unionWith :: (a -> a -> a) -> m k a -> m k a -> m k aSource

differenceWith :: (a -> b -> Maybe a) -> m k a -> m k b -> m k aSource

intersectionWith :: (a -> b -> c) -> m k a -> m k b -> m k cSource

unionWithKey :: (k -> a -> a -> a) -> m k a -> m k a -> m k aSource

differenceWithKey :: (k -> a -> b -> Maybe a) -> m k a -> m k b -> m k aSource

intersectionWithKey :: (k -> a -> b -> c) -> m k a -> m k b -> m k cSource

map :: (a -> b) -> m k a -> m k bSource

mapWithKey :: (k -> a -> b) -> m k a -> m k bSource

mapAccum :: (a -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

mapAccumWithKey :: (a -> k -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

filter :: (a -> Bool) -> m k a -> m k aSource

toList :: m k a -> [(k, a)]Source

fromList :: [(k, a)] -> m k aSource

fromListWith :: (a -> a -> a) -> [(k, a)] -> m k aSource

serializeToList :: m k a -> [(k, a)]Source

deserializeFromList :: [(k, a)] -> m k aSource

isSubmapOfBy :: (a -> b -> Bool) -> m k a -> m k b -> BoolSource

singletonView :: m k a -> Maybe (k, a)Source

Instances

Ord k => Map Map k 
Enum k => Map WrappedIntMap k 
Eq k => Map AList k 

class Map m k => OrdMap m k whereSource

Minimal complete definition:

For decent performance, supplying at least the following is probably a good idea:

Methods

ordCmp :: m k a -> k -> k -> OrderingSource

Like an Ord instance over k, but should compare on the same type as m does. In most cases this can be defined just as const compare.

toAscList :: m k a -> [(k, a)]Source

toDescList :: m k a -> [(k, a)]Source

splitLookup :: k -> m k a -> (m k a, Maybe a, m k a)Source

split :: k -> m k a -> (m k a, m k a)Source

minViewWithKey :: m k a -> (Maybe (k, a), m k a)Source

maxViewWithKey :: m k a -> (Maybe (k, a), m k a)Source

findPredecessor :: k -> m k a -> Maybe (k, a)Source

findSuccessor :: k -> m k a -> Maybe (k, a)Source

mapAccumAsc :: (a -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

mapAccumAscWithKey :: (a -> k -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

mapAccumDesc :: (a -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

mapAccumDescWithKey :: (a -> k -> b -> (a, c)) -> a -> m k b -> (a, m k c)Source

Instances

Ord k => OrdMap Map k 
Enum k => OrdMap WrappedIntMap k 
Ord k => OrdMap AList k 

data AList k v Source

Instances

Ord k => OrdMap AList k 
Eq k => Map AList k 
Functor (AList k) 
Foldable (AList k) 
Traversable (AList k) 
(Eq k, Eq v) => Eq (AList k v) 
(Ord k, Ord v) => Ord (AList k v)