Safe Haskell | None |
---|---|
Language | Haskell2010 |
HAMT API,
optimized for a fast size
operation.
That however comes at the cost of a small overhead in the other operations.
Synopsis
- data SizedHamt element
- new :: STM (SizedHamt element)
- newIO :: IO (SizedHamt element)
- null :: SizedHamt element -> STM Bool
- size :: SizedHamt element -> STM Int
- focus :: (Eq key, Hashable key) => Focus element STM result -> (element -> key) -> key -> SizedHamt element -> STM result
- insert :: (Eq key, Hashable key) => (element -> key) -> element -> SizedHamt element -> STM ()
- lookup :: (Eq key, Hashable key) => (element -> key) -> key -> SizedHamt element -> STM (Maybe element)
- reset :: SizedHamt element -> STM ()
- unfoldM :: SizedHamt a -> UnfoldM STM a
Documentation
data SizedHamt element Source #
STM-specialized Hash Array Mapped Trie,
extended with its size-tracking functionality,
allowing for a fast size
operation.
focus :: (Eq key, Hashable key) => Focus element STM result -> (element -> key) -> key -> SizedHamt element -> STM result Source #
insert :: (Eq key, Hashable key) => (element -> key) -> element -> SizedHamt element -> STM () Source #