stringtable-atom-0.0.6.2: Memoize Strings as Atoms for fast comparison and sorting, with maps and sets

Safe HaskellNone

StringTable.AtomMap

Contents

Synopsis

Map type

newtype AtomMap a Source

Constructors

MkAtomMap 

Fields

fromAtomMap :: IntMap a
 

Instances

Functor AtomMap 
Eq a => Eq (AtomMap a) 
Ord a => Ord (AtomMap a) 
Show a => Show (AtomMap a) 
Monoid (AtomMap a) 

Operators

(!) :: AtomMap a -> Key -> aSource

Query

null :: [a] -> Bool

Test whether a list is empty.

Construction

Insertion

insert :: Atom -> a -> AtomMap a -> AtomMap aSource

insertWith :: (a -> a -> a) -> Atom -> a -> AtomMap a -> AtomMap aSource

insertWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> AtomMap aSource

insertLookupWithKey :: (Key -> a -> a -> a) -> Key -> a -> AtomMap a -> (Maybe a, AtomMap a)Source

Delete/Update

adjust :: (a -> a) -> Key -> AtomMap a -> AtomMap aSource

adjustWithKey :: (Key -> a -> a) -> Key -> AtomMap a -> AtomMap aSource

update :: (a -> Maybe a) -> Key -> AtomMap a -> AtomMap aSource

updateWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> AtomMap aSource

updateLookupWithKey :: (Key -> a -> Maybe a) -> Key -> AtomMap a -> (Maybe a, AtomMap a)Source

alter :: (Maybe a -> Maybe a) -> Key -> AtomMap a -> AtomMap aSource

Combine

Union

unionWith :: (a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap aSource

unionWithKey :: (Key -> a -> a -> a) -> AtomMap a -> AtomMap a -> AtomMap aSource

unionsWith :: (a -> a -> a) -> [AtomMap a] -> AtomMap aSource

Difference

differenceWith :: (a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap aSource

differenceWithKey :: (Key -> a -> b -> Maybe a) -> AtomMap a -> AtomMap b -> AtomMap aSource

Intersection

intersectionWith :: (a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap aSource

intersectionWithKey :: (Key -> a -> b -> a) -> AtomMap a -> AtomMap b -> AtomMap aSource

Traversal

Map

map :: (a -> b) -> AtomMap a -> AtomMap bSource

mapWithKey :: (Atom -> a -> b) -> AtomMap a -> AtomMap bSource

mapAccum :: (a -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)Source

mapAccumWithKey :: (a -> Key -> b -> (a, c)) -> a -> AtomMap b -> (a, AtomMap c)Source

Fold

fold :: (a -> b -> b) -> b -> AtomMap a -> bSource

foldWithKey :: (Key -> a -> b -> b) -> b -> AtomMap a -> bSource

Conversion

elems :: AtomMap a -> [a]Source

assocs :: AtomMap a -> [(Key, a)]Source

Lists

toList :: AtomMap a -> [(Atom, a)]Source

fromList :: [(Atom, a)] -> AtomMap aSource

fromListWith :: (a -> a -> a) -> [(Atom, a)] -> AtomMap aSource

fromListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap aSource

Ordered lists

toAscList :: AtomMap a -> [(Key, a)]Source

fromAscListWith :: (a -> a -> a) -> [(Key, a)] -> AtomMap aSource

fromAscListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> AtomMap aSource

Filter

filter :: (a -> Bool) -> AtomMap a -> AtomMap aSource

filterWithKey :: (Key -> a -> Bool) -> AtomMap a -> AtomMap aSource

partition :: (a -> Bool) -> AtomMap a -> (AtomMap a, AtomMap a)Source

mapMaybe :: (a -> Maybe b) -> AtomMap a -> AtomMap bSource

mapEither :: (a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)Source

mapEitherWithKey :: (Key -> a -> Either b c) -> AtomMap a -> (AtomMap b, AtomMap c)Source

Submap

isSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> BoolSource

isProperSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> BoolSource

Min/Max

maxView :: Monad m => AtomMap a -> m (a, AtomMap a)Source

minView :: Monad m => AtomMap a -> m (a, AtomMap a)Source

updateMin :: (a -> Maybe a) -> AtomMap a -> AtomMap aSource

updateMax :: (a -> Maybe a) -> AtomMap a -> AtomMap aSource

minViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)Source

maxViewWithKey :: Monad m => AtomMap a -> m ((Key, a), AtomMap a)Source

Debugging