ddc-core-flow-0.4.2.1: Disciplined Disciple Compiler data flow compiler.

Safe HaskellNone
LanguageHaskell98

DDC.Core.Flow.Compounds

Contents

Description

Short-hands for constructing compound expressions.

Synopsis

Documentation

Fragment specific kinds

Fragment specific types

isRateNatType :: Type Name -> Bool Source

Check if some type is a fully applied type of a RateNat

isSeriesType :: Type Name -> Bool Source

Check if some type is a fully applied type of a Series.

isRateVecType :: Type Name -> Bool Source

Check if some type is a fully applied type of a RateVec.

isRefType :: Type Name -> Bool Source

Check if some type is a fully applied type of a Ref.

isVectorType :: Type Name -> Bool Source

Check if some type is a fully applied type of a Vector.

isProcessType :: Type Name -> Bool Source

Check if some type is a fully applied Process.

Primtiive types

tVoid :: Type Name Source

Primitive `Void#` type.

tBool :: Type Name Source

Primitive `Bool#` type.

tNat :: Type Name Source

Primitive Nat# type.

tInt :: Type Name Source

Primitive `Int#` type.

tWord :: Int -> Type Name Source

Primitive `WordN#` type of the given width.

tFloat :: Int -> Type Name Source

Primitive `FloatN#` type of the given width.

tVec :: Int -> Type Name -> Type Name Source

Primitive VecN# a.

Primitive literals and data constructors

xBool :: Bool -> Exp a Name Source

A literal Bool#

dcBool :: Bool -> DaCon Name Source

A literal Bool# data constructor.

xNat :: Integer -> Exp a Name Source

A literal Nat#

dcNat :: Integer -> DaCon Name Source

A Literal Nat# data constructor.

dcTuple1 :: DaCon Name Source

Data constructor for Tuple1#

xTuple2 :: Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source

Construct a Tuple2#

dcTuple2 :: DaCon Name Source

Data constructor for Tuple2#

dcTupleN :: Int -> DaCon Name Source

Data constructor for n-tuples

Primitive Vec operators

xvRep :: Int -> Type Name -> Exp () Name -> Exp () Name Source

xvProj :: Int -> Int -> Type Name -> Exp () Name -> Exp () Name Source

xvGather :: Int -> Type Name -> Type Name -> Exp () Name -> Exp () Name -> Exp () Name Source

xvScatter :: Int -> Type Name -> Exp () Name -> Exp () Name -> Exp () Name -> Exp () Name Source

Series operators

xProj :: [Type Name] -> Int -> Exp () Name -> Exp () Name Source

xRateOfSeries :: TypeF -> TypeF -> TypeF -> ExpF -> ExpF Source

xNatOfRateNat :: TypeF -> ExpF -> ExpF Source

xNext :: TypeF -> TypeF -> TypeF -> ExpF -> ExpF -> ExpF Source

xNextC :: Int -> TypeF -> TypeF -> TypeF -> ExpF -> ExpF -> ExpF Source

xDown :: Int -> TypeF -> TypeF -> TypeF -> ExpF -> ExpF -> ExpF Source

xTail :: Int -> TypeF -> TypeF -> TypeF -> ExpF -> ExpF -> ExpF Source

Control operators

xLoopN :: TypeF -> ExpF -> ExpF -> ExpF Source

xGuard :: ExpF -> ExpF -> ExpF Source

xSegment :: ExpF -> ExpF -> ExpF Source

xSplit :: Int -> TypeF -> ExpF -> ExpF -> ExpF -> ExpF Source

Store operators

xNew :: Type Name -> Exp () Name -> Exp () Name Source

xRead :: Type Name -> Exp () Name -> Exp () Name Source

xWrite :: Type Name -> Exp () Name -> Exp () Name -> Exp () Name Source

xReadVectorC :: Int -> Type Name -> Exp () Name -> Exp () Name -> Exp () Name Source

xWriteVector :: Type Name -> Exp () Name -> Exp () Name -> Exp () Name -> Exp () Name Source

xWriteVectorC :: Int -> Type Name -> Exp () Name -> Exp () Name -> Exp () Name -> Exp () Name Source

xTailVector :: Int -> Type Name -> Type Name -> Exp () Name -> Exp () Name -> Exp () Name Source