Module FlatCurry.Annotated.Types

This library contains a version of FlatCurry's abstract syntax tree which can be annotated with arbitrary information due to a polymorphic type parameter. For instance, this could be used to annotate function declarations and expressions with their corresponding type.

For more information about the abstract syntax tree of FlatCurry, see the documentation of the respective module.

Author: Jonas Oberschweiber, Bjoern Peemoeller, Michael Hanus

Version: October 2015

Summary of exported operations:

Exported datatypes:


AProg

Annotated FlatCurry program (corresponds to a module)

Constructors:


Arity

Arity of a function declaration

Type synonym: Arity = Int


AFuncDecl

Annotated function declaration

Constructors:


ARule

Annotated function rule

Constructors:

  • ARule :: a -> [(VarIndex,a)] -> (AExpr a) -> ARule a
  • AExternal :: a -> String -> ARule a

AExpr

Annotated expression

Constructors:


ABranchExpr

Annotated case branch

Constructors:


APattern

Annotated pattern

Constructors:

  • APattern :: a -> (QName,a) -> [(VarIndex,a)] -> APattern a
  • ALPattern :: a -> Literal -> APattern a

Exported operations: