never executed always true always false
1 {-# OPTIONS_HADDOCK not-home #-}
2 -- | This module exports 'MBloom'' internals.
3 module Data.BloomFilter.Mutable.Internal (
4 MBloom'(..),
5 ) where
6
7 import qualified Data.BloomFilter.BitVec64 as V
8 import Data.Kind (Type)
9 import Data.Word (Word64)
10
11 import Prelude hiding (div, divMod, elem, length, mod, notElem, rem,
12 (*), (/))
13
14 -- | A mutable Bloom filter, for use within the 'ST' monad.
15 type MBloom' :: Type -> (Type -> Type) -> Type -> Type
16 data MBloom' s h a = MBloom {
17 hashesN :: {-# UNPACK #-} !Int
18 , size :: {-# UNPACK #-} !Word64 -- ^ size is non-zero
19 , bitArray :: {-# UNPACK #-} !(V.MBitVec64 s)
20 }
21 type role MBloom' nominal nominal nominal
22
23 instance Show (MBloom' s h a) where
24 show mb = "MBloom { " ++ show (size mb) ++ " bits } "