| Copyright | Copyright (c) 1998, 2008 Chris Okasaki | 
|---|---|
| License | MIT; see COPYRIGHT file for terms and conditions | 
| Maintainer | robdockins AT fastmail DOT fm | 
| Stability | stable | 
| Portability | GHC, Hugs (MPTC and FD) | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Data.Edison.Assoc.AssocList
Contents
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.
- 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
Instances
| Eq k => Functor (FM k) Source | |
| Eq k => AssocX (FM k) k Source | |
| Ord k => OrdAssocX (FM k) k Source | |
| Eq k => FiniteMapX (FM k) k Source | |
| Ord k => OrdFiniteMapX (FM k) k Source | |
| Eq k => Assoc (FM k) k Source | |
| Ord k => OrdAssoc (FM k) k Source | |
| Eq k => FiniteMap (FM k) k Source | |
| Ord k => OrdFiniteMap (FM k) k Source | |
| (Eq k, Eq a) => Eq (FM k a) Source | |
| (Ord k, Ord a) => Ord (FM k a) Source | |
| (Eq k, Read k, Read a) => Read (FM k a) Source | |
| (Eq k, Show k, Show a) => Show (FM k a) Source | |
| (Eq k, Arbitrary k, Arbitrary a) => Arbitrary (FM k a) Source | |
| (Eq k, CoArbitrary k, CoArbitrary a) => CoArbitrary (FM k a) Source | |
| Eq k => Monoid (FM k a) Source | 
AssocX operations
lookupAndDelete :: Eq k => k -> FM k a -> (a, FM k a) Source
lookupWithDefault :: Eq k => a -> k -> FM k a -> a Source
adjustOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a Source
adjustAllOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a Source
strictWith :: (a -> b) -> FM k a -> FM k a Source
structuralInvariant :: Eq k => FM k a -> Bool Source
OrdAssocX operations
unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a Source
unsafeInsertMax :: Ord k => k -> a -> FM k a -> FM k a Source
unsafeFromOrdSeq :: (Ord k, Sequence seq) => seq (k, a) -> FM k a Source
Assoc operations
mapWithKey :: Eq k => (k -> a -> b) -> FM k a -> FM k b Source
foldWithKey :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b Source
foldWithKey' :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b Source
OrdAssoc operations
minElemWithKey :: Ord k => FM k a -> (k, a) Source
maxElemWithKey :: Ord k => FM k a -> (k, a) Source
foldrWithKey :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b Source
foldrWithKey' :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b Source
foldlWithKey :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b Source
foldlWithKey' :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b Source
FiniteMapX operations
fromSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a Source
fromSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a Source
insertWith :: Eq k => (a -> a -> a) -> k -> a -> FM k a -> FM k a Source
insertWithKey :: Eq k => (k -> a -> a -> a) -> k -> a -> FM k a -> FM k a Source
insertSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a -> FM k a Source