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

Safe HaskellSafe
LanguageHaskell98

DDC.Core.Tetra.Compounds

Contents

Synopsis

Documentation

Primitive

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.

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.