stringtable-atom-0.0.6.1: Memoize Strings as Atoms for fast comparison and sorting, with maps and setsContentsIndex
StringTable.AtomMap
Contents
Map type
Operators
Query
Construction
Insertion
Delete/Update
Combine
Union
Difference
Intersection
Traversal
Map
Fold
Conversion
Lists
Ordered lists
Filter
Submap
Min/Max
Debugging
Synopsis
newtype AtomMap a = MkAtomMap {
fromAtomMap :: IntMap a
}
type Key = Atom
(!) :: AtomMap a -> Key -> a
(\\) :: AtomMap a -> AtomMap b -> AtomMap a
null :: [a] -> Bool
size :: AtomMap a -> Int
member :: Atom -> AtomMap a -> Bool
notMember :: Key -> AtomMap a -> Bool
lookup :: Atom -> AtomMap a -> Maybe a
findWithDefault :: a -> Key -> AtomMap a -> a
empty :: AtomMap a
singleton :: Key -> a -> AtomMap a
insert :: Atom -> a -> AtomMap a -> AtomMap a
insertWith :: (a -> a -> a) -> Atom -> a -> AtomMap a -> AtomMap a
insertWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> AtomMap a
insertLookupWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> (Maybe a, AtomMap a)
delete :: Key -> AtomMap a -> AtomMap a
adjust :: (a -> a) -> Key -> AtomMap a -> AtomMap a
adjustWithKey :: (Key -> a -> a) -> Key -> AtomMap a -> AtomMap a
update :: (a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
updateWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
updateLookupWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> (Maybe a, AtomMap a)
alter :: (Maybe a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
union :: AtomMap a -> AtomMap a -> AtomMap a
unionWith :: (a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap a
unionWithKey :: (Key -> a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap a
unions :: [AtomMap a] -> AtomMap a
unionsWith :: (a -> a -> a) -> [AtomMap a] -> AtomMap a
difference :: AtomMap a -> AtomMap b -> AtomMap a
differenceWith :: (a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap a
differenceWithKey :: (Key -> a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap a
intersection :: AtomMap a -> AtomMap b -> AtomMap a
intersectionWith :: (a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap a
intersectionWithKey :: (Key -> a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap a
map :: (a -> b) -> AtomMap a -> AtomMap b
mapWithKey :: (Atom -> a -> b) -> AtomMap a -> AtomMap b
mapAccum :: (a -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)
mapAccumWithKey :: (a -> Key -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)
fold :: (a -> b -> b) -> b -> AtomMap a -> b
foldWithKey :: (Key -> a -> b -> b) -> b -> AtomMap a -> b
elems :: AtomMap a -> [a]
keys :: AtomMap a -> [Atom]
keysSet :: AtomMap a -> AtomSet
assocs :: AtomMap a -> [(Key, a)]
toList :: AtomMap a -> [(Atom, a)]
fromList :: [(Atom, a)] -> AtomMap a
fromListWith :: (a -> a -> a) -> [(Atom, a)] -> AtomMap a
fromListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap a
toAscList :: AtomMap a -> [(Key, a)]
fromAscList :: [(Key, a)] -> AtomMap a
fromAscListWith :: (a -> a -> a) -> [(Key, a)] -> AtomMap a
fromAscListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap a
fromDistinctAscList :: [(Key, a)] -> AtomMap a
filter :: (a -> Bool) -> AtomMap a -> AtomMap a
filterWithKey :: (Key -> a -> Bool) -> AtomMap a -> AtomMap a
partition :: (a -> Bool) -> AtomMap a -> (AtomMap a, AtomMap a)
partitionWithKey :: (Key -> a -> Bool) -> AtomMap a -> (AtomMap a, AtomMap a)
mapMaybe :: (a -> Maybe b) -> AtomMap a -> AtomMap b
mapMaybeWithKey :: (Atom -> a -> Maybe b) -> AtomMap a -> AtomMap b
mapEither :: (a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)
mapEitherWithKey :: (Key -> a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)
split :: Key -> AtomMap a -> (AtomMap a, AtomMap a)
splitLookup :: Key -> AtomMap a -> (AtomMap a, Maybe a, AtomMap a)
isSubmapOf :: Eq a => AtomMap a -> AtomMap a -> Bool
isSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> Bool
isProperSubmapOf :: Eq a => AtomMap a -> AtomMap a -> Bool
isProperSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> Bool
maxView :: Monad m => AtomMap a -> m (a, AtomMap a)
minView :: Monad m => AtomMap a -> m (a, AtomMap a)
deleteMin :: AtomMap a -> AtomMap a
deleteMax :: AtomMap a -> AtomMap a
deleteFindMin :: AtomMap a -> (a, AtomMap a)
deleteFindMax :: AtomMap a -> (a, AtomMap a)
updateMin :: (a -> a) -> AtomMap a -> AtomMap a
updateMax :: (a -> a) -> AtomMap a -> AtomMap a
updateMinWithKey :: (Key -> a -> a) -> AtomMap a -> AtomMap a
updateMaxWithKey :: (Key -> a -> a) -> AtomMap a -> AtomMap a
minViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)
maxViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)
showTree :: Show a => AtomMap a -> String
showTreeWith :: Show a => Bool -> Bool -> AtomMap a -> String
Map type
newtype AtomMap a
Constructors
MkAtomMap
fromAtomMap :: IntMap a
show/hide Instances
type Key = Atom
Operators
(!) :: AtomMap a -> Key -> a
(\\) :: AtomMap a -> AtomMap b -> AtomMap a
Query
null :: [a] -> Bool
Test whether a list is empty.
size :: AtomMap a -> Int
member :: Atom -> AtomMap a -> Bool
notMember :: Key -> AtomMap a -> Bool
lookup :: Atom -> AtomMap a -> Maybe a
findWithDefault :: a -> Key -> AtomMap a -> a
Construction
empty :: AtomMap a
singleton :: Key -> a -> AtomMap a
Insertion
insert :: Atom -> a -> AtomMap a -> AtomMap a
insertWith :: (a -> a -> a) -> Atom -> a -> AtomMap a -> AtomMap a
insertWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> AtomMap a
insertLookupWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> (Maybe a, AtomMap a)
Delete/Update
delete :: Key -> AtomMap a -> AtomMap a
adjust :: (a -> a) -> Key -> AtomMap a -> AtomMap a
adjustWithKey :: (Key -> a -> a) -> Key -> AtomMap a -> AtomMap a
update :: (a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
updateWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
updateLookupWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> (Maybe a, AtomMap a)
alter :: (Maybe a -> Maybe a) -> Key -> AtomMap a -> AtomMap a
Combine
Union
union :: AtomMap a -> AtomMap a -> AtomMap a
unionWith :: (a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap a
unionWithKey :: (Key -> a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap a
unions :: [AtomMap a] -> AtomMap a
unionsWith :: (a -> a -> a) -> [AtomMap a] -> AtomMap a
Difference
difference :: AtomMap a -> AtomMap b -> AtomMap a
differenceWith :: (a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap a
differenceWithKey :: (Key -> a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap a
Intersection
intersection :: AtomMap a -> AtomMap b -> AtomMap a
intersectionWith :: (a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap a
intersectionWithKey :: (Key -> a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap a
Traversal
Map
map :: (a -> b) -> AtomMap a -> AtomMap b
mapWithKey :: (Atom -> a -> b) -> AtomMap a -> AtomMap b
mapAccum :: (a -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)
mapAccumWithKey :: (a -> Key -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)
Fold
fold :: (a -> b -> b) -> b -> AtomMap a -> b
foldWithKey :: (Key -> a -> b -> b) -> b -> AtomMap a -> b
Conversion
elems :: AtomMap a -> [a]
keys :: AtomMap a -> [Atom]
keysSet :: AtomMap a -> AtomSet
assocs :: AtomMap a -> [(Key, a)]
Lists
toList :: AtomMap a -> [(Atom, a)]
fromList :: [(Atom, a)] -> AtomMap a
fromListWith :: (a -> a -> a) -> [(Atom, a)] -> AtomMap a
fromListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap a
Ordered lists
toAscList :: AtomMap a -> [(Key, a)]
fromAscList :: [(Key, a)] -> AtomMap a
fromAscListWith :: (a -> a -> a) -> [(Key, a)] -> AtomMap a
fromAscListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap a
fromDistinctAscList :: [(Key, a)] -> AtomMap a
Filter
filter :: (a -> Bool) -> AtomMap a -> AtomMap a
filterWithKey :: (Key -> a -> Bool) -> AtomMap a -> AtomMap a
partition :: (a -> Bool) -> AtomMap a -> (AtomMap a, AtomMap a)
partitionWithKey :: (Key -> a -> Bool) -> AtomMap a -> (AtomMap a, AtomMap a)
mapMaybe :: (a -> Maybe b) -> AtomMap a -> AtomMap b
mapMaybeWithKey :: (Atom -> a -> Maybe b) -> AtomMap a -> AtomMap b
mapEither :: (a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)
mapEitherWithKey :: (Key -> a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)
split :: Key -> AtomMap a -> (AtomMap a, AtomMap a)
splitLookup :: Key -> AtomMap a -> (AtomMap a, Maybe a, AtomMap a)
Submap
isSubmapOf :: Eq a => AtomMap a -> AtomMap a -> Bool
isSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> Bool
isProperSubmapOf :: Eq a => AtomMap a -> AtomMap a -> Bool
isProperSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> Bool
Min/Max
maxView :: Monad m => AtomMap a -> m (a, AtomMap a)
minView :: Monad m => AtomMap a -> m (a, AtomMap a)
deleteMin :: AtomMap a -> AtomMap a
deleteMax :: AtomMap a -> AtomMap a
deleteFindMin :: AtomMap a -> (a, AtomMap a)
deleteFindMax :: AtomMap a -> (a, AtomMap a)
updateMin :: (a -> a) -> AtomMap a -> AtomMap a
updateMax :: (a -> a) -> AtomMap a -> AtomMap a
updateMinWithKey :: (Key -> a -> a) -> AtomMap a -> AtomMap a
updateMaxWithKey :: (Key -> a -> a) -> AtomMap a -> AtomMap a
minViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)
maxViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)
Debugging
showTree :: Show a => AtomMap a -> String
showTreeWith :: Show a => Bool -> Bool -> AtomMap a -> String
Produced by Haddock version 2.7.2