fprogArithmetic Example for minimal arithmetic DSL in Haskell Grammar (Variables, Addition, Multiplication) Fold Prettyprinter Parser Evaluator Simplification Rule (Distributivity) Property Based Test