ddc-core-tetra-0.4.2.1: Disciplined Disciple Compiler intermediate language.

Safe HaskellNone
LanguageHaskell98

DDC.Core.Tetra.Compounds

Contents

Synopsis

Documentation

Primitive

tBool :: Type Name Source

Primitive Bool type.

tNat :: Type Name Source

Primitive Nat type.

tInt :: Type Name Source

Primitive Int type.

tSize :: Type Name Source

Primitive Size 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.

tPtr :: Type Name -> Type Name -> Type Name Source

Primitive Ptr type with given region and data type

Tetra types.

tTupleN :: [Type Name] -> Type Name Source

Construct a tuple type.

tUnboxed :: Type Name -> Type Name Source

Construct an unboxed representation type.

tFunValue :: Type Name -> Type Name Source

Construct a reified function type.

tCloValue :: Type Name -> Type Name Source

Construct a reified closure type.

tTextLit :: Type Name Source

The text literal type.

Expressions

xFunCReify Source

Arguments

:: a 
-> Type Name

Parameter type.

-> Type Name

Result type.

-> Exp a Name

Input closure.

-> Exp a Name

Resulting closure.

Reify a super or foreign function into a closure.

xFunCCurry Source

Arguments

:: a 
-> [Type Name]

Parameter types.

-> Type Name

Result type.

-> Exp a Name

Input closure.

-> Exp a Name

Resulting closure.

Construct a closure consisting of a top-level super and some arguments.

xFunApply Source

Arguments

:: a 
-> [Type Name]

Argument types.

-> Type Name

Result type.

-> Exp a Name

Functional expression.

-> [Exp a Name]

Argument expressions.

-> Exp a Name 

Apply a closure to more arguments.

xFunCurry Source

Arguments

:: a 
-> [Type Name]

Parameter types.

-> Type Name

Result type.

-> Exp a Name

Input closure.

-> Exp a Name

Resulting closure.

Construct a closure consisting of a top-level super and some arguments.