This module defines some basic types and function related to partial evaluation.
Version: April 2015
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. |
The left-hand-side of a function consists of its name and a list of variables.
Type synonym: FunLhs = (QName,[VarIndex])
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)
A renaming associates expressions with a function call.
Type synonym: Renaming = [(Expr,FunLhs)]
Create a function call from a function's left-hand-side. |
Pretty printing of a list of resultants. |
Pretty printing of a resultant. |
Pretty printing of a renaming. |