futhask-base-0.1.0.0: src/Futhask/Array.hs
{-|
Haskell Array library for Futhask. In contrast to many other array libraries,
the array structure is uniquely determined by the type of element.
This allows the associated type @Array element@ to be used to unambiguously express any type of valid array.
All arrays are rank one and higher ranks are represented by arrays of arrays, analogue to futhark arrays.
In contrast to futhark arrays, the lack of size types allows for irregular arrays,
however this is not permitted when converting to futhark values.
Instances `Element` are defined for all @Native@ types in the generated libraries.
-}
module Futhask.Array
( -- | Defines the `Element` class, instances of which can be elements of arrays and other generic array functions
module E
, -- | Unit arrays, defined only by their size
module U
, -- | Boxed arrays, used for nesting, and types unsuited for the other array types
module B
, -- | Tuple arrays, used tuples of any `Element` instances
module T
, -- | Storable arrays, used for primitive futhark types
module S
) where
import Futhask.Array.Element as E
import Futhask.Array.Unit as U
import Futhask.Array.Boxed as B
import Futhask.Array.Tuple as T
import Futhask.Array.Storable as S