HORIZON HASKELLDocslts/ghc-10.0.x8c2f8e82026-10-19Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8c2f8e8 · 2026-10-19

Modulemassiv-1.0.5.0Haskell2010

Data.Massiv.Array.Manifest

  • 8 types
  • 4 classes
  • 80 values
  • Packagemassiv-1.0.5.0
  • Exports93
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceCommon.hs

Manifest

1 declaration
classclass Source r e => Manifest r e where
#

Manifest arrays are backed by actual memory and values are looked up versus computed as it is with delayed arrays. Because manifest arrays are located in memory their contents can be mutated once thawed into MArray. The process of changed a mutable MArray back into an immutable Array is called freezing.

Instances6Manifest
  • NFData e => Manifest BN eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Storable e => Manifest S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Manifest B eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Manifest BL eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Prim e => Manifest P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Unbox e => Manifest U eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed

Generate

valuegenerateArrayS
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => Sz ix

    Size of the array

  3. -> (ix -> m e)

    Element producing action

  4. -> m (Array r ix e)
#

Sequentially generate a pure array. Much like makeArray creates a pure array this function will use Manifest interface to generate a pure Array in the end, except that computation strategy is set to Seq. Element producing function no longer has to be pure but is a stateful action, becuase it is restricted to PrimMonad thus allows for sharing the state between computation of each element.

Examples
Example5 expressions
import Data.Massiv.Arrayimport Data.IORefref <- newIORef (0 :: Int)generateArrayS (Sz1 6) (\ i -> modifyIORef' ref (+i) >> print i >> pure i) :: IO (Array U Ix1 Int)012345Array U Seq (Sz1 6)  [ 0, 1, 2, 3, 4, 5 ]readIORef ref15
valuegenerateSplitSeedArray
  1. :: (Iterator it, Manifest r e, Index ix)
  2. => it

    Iterator

  3. -> g

    Initial seed

  4. -> (forall s. g -> ST s (g, g))

    An ST action that can split a seed into two independent seeds. It will be called the same number of times as the number of jobs that will get scheduled during parallelization. Eg. only once for the sequential case.

  5. -> Comp

    Computation strategy.

  6. -> Sz ix

    Resulting size of the array.

  7. -> (forall s. Ix1 -> ix -> g -> ST s (e, g))

    An ST action that produces a value and the next seed. It takes both versions of the index, in linear and in multi-dimensional forms, as well as the current seeding value. Returns the element for the array cell together with the new seed that will be used for the next element generation

  8. -> (g, [g], Array r ix e)

    Returned values are:

    • The final split of the supplied seed.

    • Results of scheduled jobs in the same order that they where scheduled

    • Final array that was fully filled using the supplied action and iterator.

#

Similar to makeSplitSeedArray, except it will produce a Manifest array and will return back the last unused seed together with all final seeds produced by each scheduled job. This function can be thought of as an unfolding done in parallel while iterating in a customizable manner.

Stateful worker threads

Unfold

valueunfoldrPrimM_
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => Sz ix

    Size of the desired array

  3. -> (a -> m (e, a))

    Unfolding action

  4. -> a

    Initial accumulator

  5. -> m (Array r ix e)
#

Sequentially unfold an array from the left.

Examples

Create an array with Fibonacci numbers while performing an IO action at each iteration.

Example2 expressions
import Data.Massiv.ArrayunfoldrPrimM_ (Sz1 10) (\(f0, f1) -> (f0, (f1, f0 + f1)) <$ print f1) (0, 1) :: IO (Array P Ix1 Int)11235813213455Array P Seq (Sz1 10)  [ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ]
valueunfoldlPrimM_
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => Sz ix

    Size of the desired array

  3. -> (a -> m (a, e))

    Unfolding action

  4. -> a

    Initial accumulator

  5. -> m (Array r ix e)
#

Sequentially unfold an array from the left.

Examples

Create an array with Fibonacci numbers starting at the end while performing and IO action on the accumulator for each element of the array.

Example2 expressions
import Data.Massiv.ArrayunfoldlPrimM_ (Sz1 10) (\a@(f0, f1) -> let fn = f0 + f1 in print a >> return ((f1, fn), f0)) (0, 1) :: IO (Array P Ix1 Int)(0,1)(1,1)(1,2)(2,3)(3,5)(5,8)(8,13)(13,21)(21,34)(34,55)Array P Seq (Sz1 10)  [ 34, 21, 13, 8, 5, 3, 2, 1, 1, 0 ]

Mapping

valueforPrimM_
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => MArray (PrimState m) r ix e
  3. -> e -> m ()
  4. -> m ()
#

Sequentially loop over a mutable array while reading each element and applying an action to it. There is no mutation to the array, unless the action itself modifies it.

valueiforPrimM_
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => MArray (PrimState m) r ix e
  3. -> ix -> e -> m ()
  4. -> m ()
#

Sequentially loop over a mutable array while reading each element and applying an index aware action to it. There is no mutation to the array, unless the action itself modifies it.

valueiforLinearPrimM_
  1. :: (Manifest r e, Index ix, PrimMonad m)
  2. => MArray (PrimState m) r ix e
  3. -> Int -> e -> m ()
  4. -> m ()
#

Sequentially loop over a mutable array while reading each element and applying a linear index aware action to it. There is no mutation to the array, unless the action itself modifies it.

valuefor2PrimM_
  1. :: (PrimMonad m, Index ix, Manifest r1 e1, Manifest r2 e2)
  2. => MArray (PrimState m) r1 ix e1
  3. -> MArray (PrimState m) r2 ix e2
  4. -> e1 -> e2 -> m ()
  5. -> m ()
#

Sequentially loop over the intersection of two mutable arrays while reading elements from both and applying an action to it. There is no mutation to the actual arrays, unless the action itself modifies either one of them.

Boxed

6 declarations
datadata B
#

Array representation for Boxed elements. Its elements are strict to Weak Head Normal Form (WHNF) only.

Instances22Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show BDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Size BDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Strategy BDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Manifest B eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Shape B ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Source B eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Num e => FoldNumeric B eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Num e => Numeric B eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Load B ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Stream B ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => StrideLoad B ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Functor (Array B ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Foldable (Array B ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed

    Row-major sequential folding over a Boxed array.

  • Index ix => Traversable (Array B ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (IsList (Array L ix e), Ragged L ix e) => IsList (Array B ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, Eq e) => Eq (Array B ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, Ord e) => Ord (Array B ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Ragged L ix e, Show e) => Show (Array B ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e) => NFData (Array B ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • type Item (Array B ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data Array BDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data MArray s BDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
datadata BL
#

Array representation for Boxed elements. This data structure is lazy with respect to its elements.

Example

Memoized version of a factorial that relies on laziness. Note that computing memoized factorial of a million would likely overflow memory.

Example2 expressions
import Data.Massiv.Array as A:{mkMemoFactorial :: Int -> (Int -> Integer)mkMemoFactorial n =  let arr = makeVectorR BL Seq (Sz1 n) fact      fact i | i == 0 = 1             | otherwise = (arr ! (i - 1)) * toInteger i  in (arr !):}
Example3 expressions
let fact = mkMemoFactorial 1000001fact 5030414093201713378043612608166064768844377641568960512000000000000length $ show $ fact 500016326
Instances22Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show BLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Size BLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Strategy BLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Manifest BL eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Shape BL ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Source BL eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Num e => FoldNumeric BL eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Num e => Numeric BL eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Load BL ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Stream BL ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => StrideLoad BL ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Functor (Array BL ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Foldable (Array BL ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed

    Row-major sequential folding over a Boxed array.

  • Index ix => Traversable (Array BL ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (IsList (Array L ix e), Ragged L ix e) => IsList (Array BL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, Eq e) => Eq (Array BL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, Ord e) => Ord (Array BL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Ragged L ix e, Show e) => Show (Array BL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e) => NFData (Array BL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • type Item (Array BL ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data Array BLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data MArray s BLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
datadata BN
#

Array representation for Boxed elements. Its elements are always in Normal Form (NF), therefore NFData instance is required.

Instances19Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show BNDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Size BNDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Strategy BNDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • NFData e => Manifest BN eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • Index ix => Shape BN ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • NFData e => Source BN eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (NFData e, Num e) => FoldNumeric BN eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (NFData e, Num e) => Numeric BN eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e) => Load BN ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e) => Stream BN ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e) => StrideLoad BN ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (NFData e, IsList (Array L ix e), Ragged L ix e) => IsList (Array BN ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e, Eq e) => Eq (Array BN ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Index ix, NFData e, Ord e) => Ord (Array BN ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • (Ragged L ix e, Show e, NFData e) => Show (Array BN ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • NFData (Array BN ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed

    O(1) - BN is already in normal form

  • type Item (Array BN ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data Array BNDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
  • data MArray s BNDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed
typetype N = BN
#

Deprecated. In favor of more consistently named BN

Type and pattern N have been added for backwards compatibility and will be replaced in the future in favor of BN.

Deprecated - since 1.0.0

patternpattern N :: N
#

Deprecated. In favor of more consistently named BN

Access

valuefindIndex
  1. :: (Index ix, Manifest r e)
  2. => e -> Bool
  3. -> Array r ix e
  4. -> Maybe ix
#

O(n) - Perform a row-major search starting at 0 for an element. Returns the index of the first occurance of an element or Nothing if a predicate could not be satisifed after it was applyied to all elements of the array.

Conversion

Important part of all conversions in this section is that the actual boxed Array, which holds the pointers to values isn't copied around, it is always kept as the same array. Conversion to Massiv boxed array will undergo evaluation during which computation strategies will be respected.

Primitive Boxed Array

valueunwrapLazyArray :: Array BL ix e -> Array e
#

O(1) - Unwrap boxed array. This will discard any possible slicing that has been applied to the array.

valueunwrapArray :: Array B ix e -> Array e
#

O(1) - Unwrap boxed array. This will discard any possible slicing that has been applied to the array.

valueevalArray
  1. :: Comp

    Computation strategy

  2. -> Array e

    Lazy boxed array from primitive package.

  3. -> Vector B e
#

O(n) - Wrap a boxed array and evaluate all elements to a WHNF.

valueunwrapNormalFormArray :: Array N ix e -> Array e
#

O(1) - Unwrap a fully evaluated boxed array. This will discard any possible slicing that has been applied to the array.

Boxed Vector

valueevalBoxedVector :: Comp -> Vector a -> Array B Ix1 a
#

O(n) - Convert a boxed vector and evaluate all elements to WHNF. Computation strategy will be respected during evaluation

Primitive

2 declarations
datadata P
#

Representation for Primitive elements

Instances21Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show PDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Size PDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Strategy PDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Prim e => Manifest P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Index ix => Shape P ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Prim e => Source P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Num e) => FoldNumeric P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Num e) => Numeric P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Floating e) => NumericFloat P eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Index ix) => Load P ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Index ix) => Stream P ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Index ix) => StrideLoad P ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, IsList (Array L ix e), Ragged L ix e) => IsList (Array P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Eq e, Index ix) => Eq (Array P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Prim e, Ord e, Index ix) => Ord (Array P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • (Ragged L ix e, Show e, Prim e) => Show (Array P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • Index ix => NFData (Array P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • NFData ix => NFData (MArray s P ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • type Item (Array P ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • data Array PDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
  • data MArray s PDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Primitive
classclass Prim a where
#

Class of types supporting primitive array operations. This includes interfacing with GC-managed memory (functions suffixed with ByteArray#) and interfacing with unmanaged memory (functions suffixed with Addr#). Endianness is platform-dependent.

Instances77Prim, …
  • Prim CBoolDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CClockDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CDoubleDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CFloatDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CIntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CIntMaxDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CIntPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CLLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CPtrdiffDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSUSecondsDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CShortDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSigAtomicDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSizeDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CTimeDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUIntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUIntMaxDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUIntPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CULLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CULongDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUSecondsDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUShortDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CWcharDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim IntPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim WordPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Int16Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Int32Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Int64Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Int8Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CBlkCntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CBlkSizeDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CCcDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CClockIdDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CDevDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CFsBlkCntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CFsFilCntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CGidDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CIdDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CInoDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CKeyDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CModeDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CNlinkDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim COffDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CPidDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CRLimDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSpeedDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CSsizeDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CTcflagDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CTimerDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CUidDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim FdDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim CharDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim DoubleDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim FloatDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim IntDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim WordDefined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Word16Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Word32Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Word64Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim Word8Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim (FunPtr a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim (Ptr a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim (StablePtr a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Complex a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (First a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Last a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Max a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Min a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Identity a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Down a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Dual a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Product a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Sum a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • Prim a => Prim (Const a b)Defined in primitive-0.9.1.0 · Data.Primitive.Types

Conversion

Primitive ByteArray

Primitive Vector

Storable

4 declarations
datadata S
#

Representation for Storable elements

Instances21Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show SDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Size SDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Strategy SDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Storable e => Manifest S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Index ix => Shape S ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • Storable e => Source S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, Num e) => FoldNumeric S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, Num e) => Numeric S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, Floating e) => NumericFloat S eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Index ix, Storable e) => Load S ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Index ix, Storable e) => Stream S ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Index ix, Storable e) => StrideLoad S ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, IsList (Array L ix e), Ragged L ix e) => IsList (Array S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, Eq e, Index ix) => Eq (Array S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Storable e, Ord e, Index ix) => Ord (Array S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • (Ragged L ix e, Show e, Storable e) => Show (Array S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • NFData ix => NFData (Array S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • NFData ix => NFData (MArray s S ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • type Item (Array S ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • data Array SDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
  • data MArray s SDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Storable
classclass Storable a where
#

The member functions of this class facilitate writing values of primitive types to raw memory (which may have been allocated with the above mentioned routines) and reading values from blocks of raw memory. The class, furthermore, includes support for computing the storage requirements and alignment restrictions of storable types.

Memory addresses are represented as values of type Ptr a, for some a which is an instance of class Storable. The type argument to Ptr helps provide some valuable type safety in FFI code (you can't mix pointers of different types without an explicit cast), while helping the Haskell type system figure out which marshalling method is needed for a given pointer.

All marshalling between Haskell and a foreign language ultimately boils down to translating Haskell data structures into the binary representation of a corresponding data structure of the foreign language and vice versa. To code this marshalling in Haskell, it is necessary to manipulate primitive data types stored in unstructured memory blocks. The class Storable facilitates this manipulation on all types for which it is instantiated, which are the standard basic types of Haskell, the fixed size Int types (Int8, Int16, Int32, Int64), the fixed size Word types (Word8, Word16, Word32, Word64), StablePtr, all types from Foreign.C.Types, as well as Ptr.

Instances89Storable, …
  • Storable EventDefined in ghc-internal-10.0.0 · GHC.Internal.Event.EPoll
  • Storable EventDefined in ghc-internal-10.0.0 · GHC.Internal.Event.Poll
  • Storable PollFdDefined in ghc-internal-10.0.0 · GHC.Internal.Event.Poll
  • Storable FingerprintDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable CBoolDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CCharDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CClockDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CDoubleDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CFloatDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CIntDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CIntMaxDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CIntPtrDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CLLongDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CLongDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CPtrdiffDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CSCharDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CSUSecondsDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CShortDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CSigAtomicDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CSizeDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CTimeDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUCharDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUIntDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUIntMaxDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUIntPtrDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CULLongDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CULongDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUSecondsDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CUShortDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable CWcharDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.C.Types
  • Storable IntPtrDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Ptr
  • Storable WordPtrDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Ptr
  • Storable HalfWordDefined in ghc-internal-10.0.0 · GHC.Internal.Heap.InfoTable.Types
  • Storable FLockDefined in ghc-internal-10.0.0 · GHC.Internal.IO.Handle.Lock.LinuxOFD
  • Storable Int16Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Int32Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Int64Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Int8Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable CBlkCntDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CBlkSizeDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CCcDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CClockIdDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CDevDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CFsBlkCntDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CFsFilCntDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CGidDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CIdDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CInoDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CKeyDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CModeDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CNfdsDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CNlinkDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable COffDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CPidDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CRLimDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CSocklenDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CSpeedDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CSsizeDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CTcflagDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CTimerDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable CUidDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable FdDefined in ghc-internal-10.0.0 · GHC.Internal.System.Posix.Types
  • Storable BoolDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable CharDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable DoubleDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable FloatDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable IntDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable WordDefined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Word16Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Word32Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Word64Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable Word8Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable ()Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable (ConstPtr a)Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable (FunPtr a)Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable (Ptr a)Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable (StablePtr a)Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Storable a => Storable (Complex a)Defined in base-4.23.0.0 · Data.Complex
  • Storable a => Storable (Identity a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.Identity
  • Storable a => Storable (Down a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Ord
  • Storable g => Storable (StateGen g)Defined in random-1.3.1 · System.Random.Internal
  • Storable g => Storable (AtomicGen g)Defined in random-1.3.1 · System.Random.Stateful
  • Storable g => Storable (IOGen g)Defined in random-1.3.1 · System.Random.Stateful
  • Storable g => Storable (STGen g)Defined in random-1.3.1 · System.Random.Stateful
  • Storable g => Storable (TGen g)Defined in random-1.3.1 · System.Random.Stateful
  • Prim a => Storable (PrimStorable a)Defined in primitive-0.9.1.0 · Data.Primitive.Types
  • (Storable a, Integral a) => Storable (Ratio a)Defined in ghc-internal-10.0.0 · GHC.Internal.Foreign.Storable
  • Prim a => Storable (PVar a RealWorld)Defined in pvar-1.0.0.0 · Data.Primitive.PVar.Internal

    poke+peek will result in a new copy of a PVar

  • Storable a => Storable (Const a b)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.Const
valuemallocCompute
  1. :: (Size r, Load r ix e, Storable e)
  2. => Array r ix e
  3. -> IO (Array S ix e)
#

Very similar to computeAs S except load the source array into memory allocated with malloc on C heap. It can potentially be useful when iteroperating with some C programs.

Conversion

Storable Vector

Direct Pointer Access

Unboxed

2 declarations
datadata U
#

Representation for Unboxed elements

Instances20Size, Strategy, Manifest, Shape, Source, FoldNumeric, …
  • Show UDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • Size UDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • Strategy UDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • Unbox e => Manifest U eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • Index ix => Shape U ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • Unbox e => Source U eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Num e) => FoldNumeric U eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Num e) => Numeric U eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Index ix) => Load U ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Index ix, Unbox e) => Stream U ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Index ix) => StrideLoad U ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, IsList (Array L ix e), Ragged L ix e) => IsList (Array U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Eq e, Index ix) => Eq (Array U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Unbox e, Ord e, Index ix) => Ord (Array U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • (Ragged L ix e, Show e, Unbox e) => Show (Array U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • NFData ix => NFData (Array U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • NFData ix => NFData (MArray s U ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • type Item (Array U ix e) = Item (Array L ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • data Array UDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
  • data MArray s UDefined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Unboxed
classclass (Vector Vector a, MVector MVector a) => Unbox a
#
Instances42Unbox, …
  • Unbox AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox Ix2Defined in massiv-1.0.5.0 · Data.Massiv.Core.Index.Ix

    Unboxing of a Ix2.

  • Unbox ()Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • NFData a => Unbox (DoNotUnboxNormalForm a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox (DoNotUnboxLazy a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox (DoNotUnboxStrict a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Complex a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Max a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Min a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (WrappedMonoid a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (3 <= n, Unbox (Ix (n - 1))) => Unbox (IxN n)Defined in massiv-1.0.5.0 · Data.Massiv.Core.Index.Ix

    Unboxing of a IxN.

  • (Unbox a, Unbox b) => Unbox (Arg a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (Unbox a, Unbox b) => Unbox (a, b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox (f a) => Unbox (Alt f a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox a => Unbox (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (Unbox a, Unbox b, Unbox c) => Unbox (a, b, c)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (Unbox a, Unbox b, Unbox c, Unbox d) => Unbox (a, b, c, d)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • Unbox (f (g a)) => Unbox (Compose f g a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => Unbox (a, b, c, d, e)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
  • (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => Unbox (a, b, c, d, e, f)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base

Conversion

Unboxed Vector

ByteString Conversion

6 declarations