typerep-map-0.3.2: Efficient implementation of a dependent map with types as keys

Safe HaskellNone
LanguageHaskell2010

Data.TypeRep.Vector

Contents

Synopsis

Documentation

data TypeRepVector f #

Constructors

TypeRepVect 

Fields

data TF f where #

Constructors

TF :: Typeable a => f a -> TF f 

empty :: TypeRepVector f #

Empty structure.

insert :: forall a f. Typeable a => a -> TypeRepVector f -> TypeRepVector f #

Inserts the value with its type as a key.

lookup :: forall a f. Typeable a => TypeRepVector f -> Maybe (f a) #

Looks up the value at the type. >>> let x = lookup $ insert (11 :: Int) empty >>> x :: Maybe Int Just 11 >>> x :: Maybe () Nothing

size :: TypeRepVector f -> Int #

Returns the size of the TypeRepVect.

fromList :: forall f. [TF f] -> TypeRepVector f #

Orphan instances

Unbox Fingerprint # 
Instance details

Vector Vector Fingerprint # 
Instance details

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) Fingerprint -> m (Vector Fingerprint) #

basicUnsafeThaw :: PrimMonad m => Vector Fingerprint -> m (Mutable Vector (PrimState m) Fingerprint) #

basicLength :: Vector Fingerprint -> Int #

basicUnsafeSlice :: Int -> Int -> Vector Fingerprint -> Vector Fingerprint #

basicUnsafeIndexM :: Monad m => Vector Fingerprint -> Int -> m Fingerprint #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) Fingerprint -> Vector Fingerprint -> m () #

elemseq :: Vector Fingerprint -> Fingerprint -> b -> b #

MVector MVector Fingerprint # 
Instance details

Methods

basicLength :: MVector s Fingerprint -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s Fingerprint -> MVector s Fingerprint #

basicOverlaps :: MVector s Fingerprint -> MVector s Fingerprint -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) Fingerprint) #

basicInitialize :: PrimMonad m => MVector (PrimState m) Fingerprint -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> Fingerprint -> m (MVector (PrimState m) Fingerprint) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) Fingerprint -> Int -> m Fingerprint #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) Fingerprint -> Int -> Fingerprint -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) Fingerprint -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) Fingerprint -> Fingerprint -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) Fingerprint -> MVector (PrimState m) Fingerprint -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) Fingerprint -> MVector (PrimState m) Fingerprint -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) Fingerprint -> Int -> m (MVector (PrimState m) Fingerprint) #