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

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) 

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

lookup :: Atom -> AtomMap a -> Maybe a

findWithDefault :: a -> Key -> AtomMap a -> a

Construction

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

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

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

Intersection

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]

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

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)

Submap

isSubmapOf :: Eq a => AtomMap a -> AtomMap a -> Bool

isSubmapOfBy :: (a -> b -> Bool) -> AtomMap a -> AtomMap b -> 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)

deleteFindMin :: AtomMap a -> ((Key, a), AtomMap a)

deleteFindMax :: AtomMap a -> ((Key, a), AtomMap a)

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

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

updateMinWithKey :: (Key -> a -> Maybe a) -> AtomMap a -> AtomMap a

updateMaxWithKey :: (Key -> a -> Maybe 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