packages feed

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