stm-hamt-1.2.0.10: library/StmHamt/Types.hs
{-# OPTIONS_GHC -funbox-strict-fields #-}
module StmHamt.Types where
import StmHamt.Prelude
-- |
-- STM-specialized Hash Array Mapped Trie,
-- extended with its size-tracking functionality,
-- allowing for a fast 'size' operation.
data SizedHamt element = SizedHamt !(TVar Int) !(Hamt element)
-- |
-- STM-specialized Hash Array Mapped Trie.
newtype Hamt element = Hamt (TVar (By6Bits (Branch element)))
data Branch element = BranchesBranch !(Hamt element) | LeavesBranch !Int !(SmallArray element)