Module PevalBase

This module defines some basic types and function related to partial evaluation.

Version: April 2015

Summary of exported operations:

mkFuncCall :: ((String,String),[Int]) -> Expr   
Create a function call from a function's left-hand-side.
ppResultants :: [(((String,String),[Int]),Expr)] -> Doc   
Pretty printing of a list of resultants.
ppResultant :: (((String,String),[Int]),Expr) -> Doc   
Pretty printing of a resultant.
ppRenaming :: [(Expr,((String,String),[Int]))] -> Doc   
Pretty printing of a renaming.

Exported datatypes:


FunLhs

The left-hand-side of a function consists of its name and a list of variables.

Type synonym: FunLhs = (QName,[VarIndex])


Resultant

A resultant represents a new function definition consisting of a left-hand side and an expression (the right-hand side).

Type synonym: Resultant = (FunLhs,Expr)


Renaming

A renaming associates expressions with a function call.

Type synonym: Renaming = [(Expr,FunLhs)]


Exported operations:

mkFuncCall :: ((String,String),[Int]) -> Expr   

Create a function call from a function's left-hand-side.

ppResultants :: [(((String,String),[Int]),Expr)] -> Doc   

Pretty printing of a list of resultants.

ppResultant :: (((String,String),[Int]),Expr) -> Doc   

Pretty printing of a resultant.

ppRenaming :: [(Expr,((String,String),[Int]))] -> Doc   

Pretty printing of a renaming.