fixed-vector-hetero-0.3.1.1: Generic heterogeneous vectors

Safe HaskellNone
LanguageHaskell98

Data.Vector.HFixed.HVec

Contents

Description

Heterogeneous vector parametric in its elements

Synopsis

Generic heterogeneous vector

data HVec xs Source

Generic heterogeneous vector

Instances

ArityC Eq xs => Eq (HVec xs) Source 
(ArityC Ord xs, Eq (HVec xs)) => Ord (HVec xs) Source 
ArityC Show xs => Show (HVec xs) Source 
ArityC Monoid xs => Monoid (HVec xs) Source 
ArityC NFData xs => NFData (HVec xs) Source 
Arity xs => HVector (HVec xs) Source 
type Elems (HVec xs) = xs Source 

Mutable heterogeneous vector

data MutableHVec s xs Source

Generic mutable heterogeneous vector.

newMutableHVec :: forall m xs. (PrimMonad m, Arity xs) => m (MutableHVec (PrimState m) xs) Source

Create new uninitialized heterogeneous vector.

unsafeFreezeHVec :: PrimMonad m => MutableHVec (PrimState m) xs -> m (HVec xs) Source

Convert mutable vector to immutable one. Mutable vector must not be modified after that.

Indices

readMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> m (ValueAt n xs) Source

Read value at statically known index.

writeMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> ValueAt n xs -> m () Source

Write value at statically known index

modifyMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> (ValueAt n xs -> ValueAt n xs) -> m () Source

Apply function to value at statically known index.

modifyMutableHVec' :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> (ValueAt n xs -> ValueAt n xs) -> m () Source

Strictly apply function to value at statically known index.