Safe Haskell | None |
---|---|
Language | Haskell98 |
Heterogeneous vector parametric in its elements
- data HVec xs
- data MutableHVec s xs
- newMutableHVec :: forall m xs. (PrimMonad m, Arity xs) => m (MutableHVec (PrimState m) xs)
- unsafeFreezeHVec :: PrimMonad m => MutableHVec (PrimState m) xs -> m (HVec xs)
- readMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> m (ValueAt n xs)
- writeMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> ValueAt n xs -> m ()
- modifyMutableHVec :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> (ValueAt n xs -> ValueAt n xs) -> m ()
- modifyMutableHVec' :: (PrimMonad m, Index n xs, Arity xs) => MutableHVec (PrimState m) xs -> n -> (ValueAt n xs -> ValueAt n xs) -> m ()
Generic heterogeneous vector
Generic heterogeneous vector
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.