Safe Haskell | None |
---|
- data Multimap k v
- type Association k v = (Eq k, Hashable k, Eq v, Hashable v)
- new :: STM (Multimap k v)
- insert :: Association k v => v -> k -> Multimap k v -> STM ()
- delete :: Association k v => v -> k -> Multimap k v -> STM ()
- lookup :: Association k v => v -> k -> Multimap k v -> STM Bool
- focus :: Association k v => StrategyM STM () r -> v -> k -> Multimap k v -> STM r
- foldM :: (a -> (k, v) -> STM a) -> a -> Multimap k v -> STM a
- null :: Multimap k v -> STM Bool
Documentation
insert :: Association k v => v -> k -> Multimap k v -> STM ()Source
Insert an item.
delete :: Association k v => v -> k -> Multimap k v -> STM ()Source
Delete an item by a value and a key.
lookup :: Association k v => v -> k -> Multimap k v -> STM BoolSource
Look up an item by a value and a key.
focus :: Association k v => StrategyM STM () r -> v -> k -> Multimap k v -> STM rSource
Focus on an item with a strategy by a value and a key.
This function allows to perform simultaneous lookup and modification.
The strategy is over a unit since we already know, which value we're focusing on and it doesn't make sense to replace it, however we still can still decide wether to keep or remove it.