A simplifier for FlatCurry programs. In particular, it replaces calls to Eq.== implementations by Prelude.==
Author: Michael Hanus
Version: December 2023
simpProg
:: Prog -> Prog
|
simpFuncDecl
:: FuncDecl -> FuncDecl
|
simpExpr
:: Expr -> Expr
Implements the following transformations:
|
simpClassEq
:: Expr -> Expr
|
simpArithExp
:: Expr -> Expr
Simplify applications of primitive operations, i.e., apply (apply op e1) e2 ==> op [e1,e2] apply (apply op e1 :: t) e2 ==> op [e1,e2] apply op e1 ==> op [e1] |
|
Implements the following transformations:
|
|
Simplify applications of primitive operations, i.e., apply (apply op e1) e2 ==> op [e1,e2] apply (apply op e1 :: t) e2 ==> op [e1,e2] apply op e1 ==> op [e1] |