Module FlatCurry.Annotated.Types

Category
meta
Author
Jonas Oberschweiber, Bjoern Peemoeller, Michael Hanus
Version
October 2015

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.

Exported Datatypes


data AProg a

Annotated FlatCurry program (corresponds to a module)

Constructors:

Known instances:


type Arity = Int

Arity of a function declaration


data AFuncDecl a

Annotated function declaration

Constructors:

Known instances:


data ARule a

Annotated function rule

Constructors:

Known instances:


data AExpr a

Annotated expression

Constructors:

Known instances:


data ABranchExpr a

Annotated case branch

Constructors:

Known instances:


data APattern a

Annotated pattern

Constructors:

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

Known instances: