Module ICurry.Extended.Types

Types for representing ICurry programs

Author: Marc Andre Wittorf

Summary of exported operations:

Exported datatypes:


IEAssign

An Extended assignment

Type synonym: IEAssign = (IVarIndex,IEExpr)


IEProg

An Extended module

Constructors:


IEQName

Type synonym: IEQName = (IQName,Int)


IEVisibility

An Extended visibility

Constructors:

  • Public :: IEVisibility : Visible and usable from other modules
  • Private :: IEVisibility : Invisible and not usable from other modules

IEDataType

An Extended data type

Type synonym: IEDataType = (IEQName,IEVisibility,[ITVarIndex],[IEConstructor])


IEConstructor

An Extended constructor

Constructors:


IETExpr

An Extended type expression

Constructors:


IEFunction

An Extended function

Constructors:


IEFuncBody

An Extended function's behavior

Constructors:

  • IEExternal :: IArity -> String -> IEFuncBody : the function is externally defined
  • IEFuncBody :: [IVarIndex] -> IEBlock -> IEFuncBody : the function is defined here

IEBlock

An Extended block

Constructors:


IEConsBranch

An Extended branch over constructors

Constructors:


IELitBranch

An Extended branch over literals

Constructors:


IEExpr

An Extended expression

Constructors:

  • IEVar :: IVarIndex -> IEExpr : a variable
  • IELit :: ILiteral -> IEExpr : a literal
  • IEFCall :: IEQName -> [IEExpr] -> IEExpr : a function call
  • IECCall :: IEQName -> [IEExpr] -> IEExpr : a constructor call
  • IEOr :: [IEExpr] -> IEExpr : -deterministic choice

Exported operations: