feldspar-language- A functional embedded language for DSP and parallelism




Heterogenous lists

data a :> b Source

Heterogeneous list


a :> b 


(Eq a, Eq b) => Eq (:> a b) 
(Ord a, Ord b) => Ord (:> a b) 
(Show a, Show b) => Show (:> a b) 
(Set a, Set b) => Set (:> a b) 


class Signed a Source

The set of signed integer types

Type/data representation

data TypeRep Source

Representation of types

class (Eq a, Show a, Typeable a, Eq (Size a), Show (Size a), Set (Size a)) => Type a whereSource

Associated Types

type Size a Source


dataRep :: a -> DataRepSource

typeRep :: Tagged a (Size a) -> TypeRepSource

Gives the type representation of a storable value.

sizeOf :: a -> Size aSource

Gives the size of a storable value.


Type Bool 
Type Float 
Type Int8 
Type Int16 
Type Int32 
Type Word8 
Type Word16 
Type Word32 
Type () 
Type DefaultInt 
Type DefaultWord 
Type a => Type [a] 
(Type a, RealFloat a) => Type (Complex a) 
(Type a, Type b) => Type (a, b) 
(Type a, Type b, Type c) => Type (a, b, c) 
(Type a, Type b, Type c, Type d) => Type (a, b, c, d) 

class MetaType role a whereSource


listTypes :: [Int] -> Proxy role -> Proxy a -> [([Int], TypeRep)]Source


Type a => MetaType () a 
(MetaType ra a, MetaType rb b) => MetaType (ra, rb) (a, b) 
(MetaType ra a, MetaType rb b, MetaType rc c) => MetaType (ra, rb, rc) (a, b, c) 
(MetaType ra a, MetaType rb b, MetaType rc c, MetaType rd d) => MetaType (ra, rb, rc, rd) (a, b, c, d) 

typeRep' :: forall a. Type a => a -> TypeRepSource

A version of typeRep that gets the Size implicitly from the argument.

isNil :: Type a => a -> BoolSource

Size propagation

class FullProp a whereSource


fullProp :: aSource

Size propagation function that maps any number of arguments to universal.


FullProp () 
BoundedInt a => FullProp (Range a) 
FullProp b => FullProp (a -> b)