stm-containers-0.2.9: Containers for STM

Safe HaskellNone
LanguageHaskell2010

STMContainers.Map

Synopsis

Documentation

data Map k v Source

A hash table, based on an STM-specialized hash array mapped trie.

Instances

Typeable (* -> * -> *) Map 

type Key a = (Eq a, Hashable a) Source

A constraint for keys.

new :: STM (Map k v) Source

Construct a new map.

newIO :: IO (Map k v) Source

Construct a new map in IO.

This is useful for creating it on a top-level using unsafePerformIO, because using atomically inside unsafePerformIO isn't possible.

insert :: Key k => v -> k -> Map k v -> STM () Source

Insert a value at a key.

delete :: Key k => k -> Map k v -> STM () Source

Delete an item by a key.

lookup :: Key k => k -> Map k v -> STM (Maybe v) Source

Look up an item.

focus :: Key k => StrategyM STM v r -> k -> Map k v -> STM r Source

Focus on an item by a key with a strategy.

This function allows to perform composite operations in a single access to a map item. E.g., you can look up an item and delete it at the same time, or update it and return the new value.

null :: Map k v -> STM Bool Source

Check, whether the map is empty.

stream :: Map k v -> ListT STM (k, v) Source

Stream associations.

Amongst other features this function provides an interface to folding via the fold function.