EdisonCore-1.2.1: A library of efficient, purely-functional data structures (Core Implementations)ContentsIndex
Data.Edison.Assoc.AssocList
PortabilityGHC, Hugs (MPTC and FD)
Stabilitystable
Maintainerrobdockins AT fastmail DOT fm
Contents
Type of simple association lists
AssocX operations
OrdAssocX operations
Assoc operations
OrdAssoc operations
FiniteMapX operations
FiniteMap operations
Documentation
Description

This module implements finite maps as simple association lists.

Duplicates are removed conceptually, but not physically. The first occurrence of a given key is the one that is considered to be in the map.

The list type is mildly customized to prevent boxing the pairs.

Synopsis
data FM k a
empty :: Eq k => FM k a
singleton :: Eq k => k -> a -> FM k a
fromSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a
insert :: Eq k => k -> a -> FM k a -> FM k a
insertSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a -> FM k a
union :: Eq k => FM k a -> FM k a -> FM k a
unionSeq :: (Eq k, Sequence seq) => seq (FM k a) -> FM k a
delete :: Eq k => k -> FM k a -> FM k a
deleteAll :: Eq k => k -> FM k a -> FM k a
deleteSeq :: (Eq k, Sequence seq) => seq k -> FM k a -> FM k a
null :: Eq k => FM k a -> Bool
size :: Eq k => FM k a -> Int
member :: Eq k => k -> FM k a -> Bool
count :: Eq k => k -> FM k a -> Int
lookup :: Eq k => k -> FM k a -> a
lookupM :: (Eq k, Monad rm) => k -> FM k a -> rm a
lookupAll :: (Eq k, Sequence seq) => k -> FM k a -> seq a
lookupAndDelete :: Eq k => k -> FM k a -> (a, FM k a)
lookupAndDeleteM :: (Eq k, Monad rm) => k -> FM k a -> rm (a, FM k a)
lookupAndDeleteAll :: (Eq k, Sequence seq) => k -> FM k a -> (seq a, FM k a)
lookupWithDefault :: Eq k => a -> k -> FM k a -> a
adjust :: Eq k => (a -> a) -> k -> FM k a -> FM k a
adjustAll :: Eq k => (a -> a) -> k -> FM k a -> FM k a
adjustOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a
adjustAllOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a
adjustOrDelete :: Eq k => (a -> Maybe a) -> k -> FM k a -> FM k a
adjustOrDeleteAll :: Eq k => (a -> Maybe a) -> k -> FM k a -> FM k a
strict :: FM k a -> FM k a
strictWith :: (a -> b) -> FM k a -> FM k a
map :: Eq k => (a -> b) -> FM k a -> FM k b
fold :: Eq k => (a -> b -> b) -> b -> FM k a -> b
fold' :: Eq k => (a -> b -> b) -> b -> FM k a -> b
fold1 :: Eq k => (a -> a -> a) -> FM k a -> a
fold1' :: Eq k => (a -> a -> a) -> FM k a -> a
filter :: Eq k => (a -> Bool) -> FM k a -> FM k a
partition :: Eq k => (a -> Bool) -> FM k a -> (FM k a, FM k a)
elements :: (Eq k, Sequence seq) => FM k a -> seq a
structuralInvariant :: Eq k => FM k a -> Bool
minView :: (Ord k, Monad m) => FM k a -> m (a, FM k a)
minElem :: Ord k => FM k a -> a
deleteMin :: Ord k => FM k a -> FM k a
unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a
maxView :: (Ord k, Monad m) => FM k a -> m (a, FM k a)
maxElem :: Ord k => FM k a -> a
deleteMax :: Ord k => FM k a -> FM k a
unsafeInsertMax :: Ord k => k -> a -> FM k a -> FM k a
foldr :: Ord k => (a -> b -> b) -> b -> FM k a -> b
foldr' :: Ord k => (a -> b -> b) -> b -> FM k a -> b
foldl :: Ord k => (b -> a -> b) -> b -> FM k a -> b
foldl' :: Ord k => (b -> a -> b) -> b -> FM k a -> b
foldr1 :: Ord k => (a -> a -> a) -> FM k a -> a
foldr1' :: Ord k => (a -> a -> a) -> FM k a -> a
foldl1 :: Ord k => (a -> a -> a) -> FM k a -> a
foldl1' :: Ord k => (a -> a -> a) -> FM k a -> a
unsafeFromOrdSeq :: (Ord k, Sequence seq) => seq (k, a) -> FM k a
unsafeAppend :: Ord k => FM k a -> FM k a -> FM k a
filterLT :: Ord k => k -> FM k a -> FM k a
filterLE :: Ord k => k -> FM k a -> FM k a
filterGT :: Ord k => k -> FM k a -> FM k a
filterGE :: Ord k => k -> FM k a -> FM k a
partitionLT_GE :: Ord k => k -> FM k a -> (FM k a, FM k a)
partitionLE_GT :: Ord k => k -> FM k a -> (FM k a, FM k a)
partitionLT_GT :: Ord k => k -> FM k a -> (FM k a, FM k a)
toSeq :: (Eq k, Sequence seq) => FM k a -> seq (k, a)
keys :: (Eq k, Sequence seq) => FM k a -> seq k
mapWithKey :: Eq k => (k -> a -> b) -> FM k a -> FM k b
foldWithKey :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b
foldWithKey' :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b
filterWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> FM k a
partitionWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> (FM k a, FM k a)
minViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a)
minElemWithKey :: Ord k => FM k a -> (k, a)
maxViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a)
maxElemWithKey :: Ord k => FM k a -> (k, a)
foldrWithKey :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b
foldrWithKey' :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b
foldlWithKey :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b
foldlWithKey' :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b
toOrdSeq :: (Ord k, Sequence seq) => FM k a -> seq (k, a)
fromSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a
fromSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a
insertWith :: Eq k => (a -> a -> a) -> k -> a -> FM k a -> FM k a
insertWithKey :: Eq k => (k -> a -> a -> a) -> k -> a -> FM k a -> FM k a
insertSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a -> FM k a
insertSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a -> FM k a
unionl :: Eq k => FM k a -> FM k a -> FM k a
unionr :: Eq k => FM k a -> FM k a -> FM k a
unionWith :: Eq k => (a -> a -> a) -> FM k a -> FM k a -> FM k a
unionSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (FM k a) -> FM k a
intersectionWith :: Eq k => (a -> b -> c) -> FM k a -> FM k b -> FM k c
difference :: Eq k => FM k a -> FM k b -> FM k a
properSubset :: Eq k => FM k a -> FM k b -> Bool
subset :: Eq k => FM k a -> FM k b -> Bool
properSubmapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
submapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
sameMapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
properSubmap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
submap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
sameMap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
unionWithKey :: Eq k => (k -> a -> a -> a) -> FM k a -> FM k a -> FM k a
unionSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (FM k a) -> FM k a
intersectionWithKey :: Eq k => (k -> a -> b -> c) -> FM k a -> FM k b -> FM k c
moduleName :: String
Type of simple association lists
data FM k a
show/hide Instances
Eq k => Functor (FM k)
Eq k => Assoc (FM k) k
Eq k => AssocX (FM k) k
Eq k => FiniteMap (FM k) k
Eq k => FiniteMapX (FM k) k
Ord k => OrdAssoc (FM k) k
Ord k => OrdAssocX (FM k) k
Ord k => OrdFiniteMap (FM k) k
Ord k => OrdFiniteMapX (FM k) k
(Eq k, Arbitrary k, Arbitrary a) => Arbitrary (FM k a)
(Eq k, Eq a) => Eq (FM k a)
Eq k => Monoid (FM k a)
(Ord k, Ord a) => Ord (FM k a)
(Eq k, Read k, Read a) => Read (FM k a)
(Eq k, Show k, Show a) => Show (FM k a)
AssocX operations
empty :: Eq k => FM k a
singleton :: Eq k => k -> a -> FM k a
fromSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a
insert :: Eq k => k -> a -> FM k a -> FM k a
insertSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a -> FM k a
union :: Eq k => FM k a -> FM k a -> FM k a
unionSeq :: (Eq k, Sequence seq) => seq (FM k a) -> FM k a
delete :: Eq k => k -> FM k a -> FM k a
deleteAll :: Eq k => k -> FM k a -> FM k a
deleteSeq :: (Eq k, Sequence seq) => seq k -> FM k a -> FM k a
null :: Eq k => FM k a -> Bool
size :: Eq k => FM k a -> Int
member :: Eq k => k -> FM k a -> Bool
count :: Eq k => k -> FM k a -> Int
lookup :: Eq k => k -> FM k a -> a
lookupM :: (Eq k, Monad rm) => k -> FM k a -> rm a
lookupAll :: (Eq k, Sequence seq) => k -> FM k a -> seq a
lookupAndDelete :: Eq k => k -> FM k a -> (a, FM k a)
lookupAndDeleteM :: (Eq k, Monad rm) => k -> FM k a -> rm (a, FM k a)
lookupAndDeleteAll :: (Eq k, Sequence seq) => k -> FM k a -> (seq a, FM k a)
lookupWithDefault :: Eq k => a -> k -> FM k a -> a
adjust :: Eq k => (a -> a) -> k -> FM k a -> FM k a
adjustAll :: Eq k => (a -> a) -> k -> FM k a -> FM k a
adjustOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a
adjustAllOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a
adjustOrDelete :: Eq k => (a -> Maybe a) -> k -> FM k a -> FM k a
adjustOrDeleteAll :: Eq k => (a -> Maybe a) -> k -> FM k a -> FM k a
strict :: FM k a -> FM k a
strictWith :: (a -> b) -> FM k a -> FM k a
map :: Eq k => (a -> b) -> FM k a -> FM k b
fold :: Eq k => (a -> b -> b) -> b -> FM k a -> b
fold' :: Eq k => (a -> b -> b) -> b -> FM k a -> b
fold1 :: Eq k => (a -> a -> a) -> FM k a -> a
fold1' :: Eq k => (a -> a -> a) -> FM k a -> a
filter :: Eq k => (a -> Bool) -> FM k a -> FM k a
partition :: Eq k => (a -> Bool) -> FM k a -> (FM k a, FM k a)
elements :: (Eq k, Sequence seq) => FM k a -> seq a
structuralInvariant :: Eq k => FM k a -> Bool
OrdAssocX operations
minView :: (Ord k, Monad m) => FM k a -> m (a, FM k a)
minElem :: Ord k => FM k a -> a
deleteMin :: Ord k => FM k a -> FM k a
unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a
maxView :: (Ord k, Monad m) => FM k a -> m (a, FM k a)
maxElem :: Ord k => FM k a -> a
deleteMax :: Ord k => FM k a -> FM k a
unsafeInsertMax :: Ord k => k -> a -> FM k a -> FM k a
foldr :: Ord k => (a -> b -> b) -> b -> FM k a -> b
foldr' :: Ord k => (a -> b -> b) -> b -> FM k a -> b
foldl :: Ord k => (b -> a -> b) -> b -> FM k a -> b
foldl' :: Ord k => (b -> a -> b) -> b -> FM k a -> b
foldr1 :: Ord k => (a -> a -> a) -> FM k a -> a
foldr1' :: Ord k => (a -> a -> a) -> FM k a -> a
foldl1 :: Ord k => (a -> a -> a) -> FM k a -> a
foldl1' :: Ord k => (a -> a -> a) -> FM k a -> a
unsafeFromOrdSeq :: (Ord k, Sequence seq) => seq (k, a) -> FM k a
unsafeAppend :: Ord k => FM k a -> FM k a -> FM k a
filterLT :: Ord k => k -> FM k a -> FM k a
filterLE :: Ord k => k -> FM k a -> FM k a
filterGT :: Ord k => k -> FM k a -> FM k a
filterGE :: Ord k => k -> FM k a -> FM k a
partitionLT_GE :: Ord k => k -> FM k a -> (FM k a, FM k a)
partitionLE_GT :: Ord k => k -> FM k a -> (FM k a, FM k a)
partitionLT_GT :: Ord k => k -> FM k a -> (FM k a, FM k a)
Assoc operations
toSeq :: (Eq k, Sequence seq) => FM k a -> seq (k, a)
keys :: (Eq k, Sequence seq) => FM k a -> seq k
mapWithKey :: Eq k => (k -> a -> b) -> FM k a -> FM k b
foldWithKey :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b
foldWithKey' :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b
filterWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> FM k a
partitionWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> (FM k a, FM k a)
OrdAssoc operations
minViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a)
minElemWithKey :: Ord k => FM k a -> (k, a)
maxViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a)
maxElemWithKey :: Ord k => FM k a -> (k, a)
foldrWithKey :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b
foldrWithKey' :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b
foldlWithKey :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b
foldlWithKey' :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b
toOrdSeq :: (Ord k, Sequence seq) => FM k a -> seq (k, a)
FiniteMapX operations
fromSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a
fromSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a
insertWith :: Eq k => (a -> a -> a) -> k -> a -> FM k a -> FM k a
insertWithKey :: Eq k => (k -> a -> a -> a) -> k -> a -> FM k a -> FM k a
insertSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a -> FM k a
insertSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a -> FM k a
unionl :: Eq k => FM k a -> FM k a -> FM k a
unionr :: Eq k => FM k a -> FM k a -> FM k a
unionWith :: Eq k => (a -> a -> a) -> FM k a -> FM k a -> FM k a
unionSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (FM k a) -> FM k a
intersectionWith :: Eq k => (a -> b -> c) -> FM k a -> FM k b -> FM k c
difference :: Eq k => FM k a -> FM k b -> FM k a
properSubset :: Eq k => FM k a -> FM k b -> Bool
subset :: Eq k => FM k a -> FM k b -> Bool
properSubmapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
submapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
sameMapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool
properSubmap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
submap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
sameMap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool
FiniteMap operations
unionWithKey :: Eq k => (k -> a -> a -> a) -> FM k a -> FM k a -> FM k a
unionSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (FM k a) -> FM k a
intersectionWithKey :: Eq k => (k -> a -> b -> c) -> FM k a -> FM k b -> FM k c
Documentation
moduleName :: String
Produced by Haddock version 0.8