// Mart Lubbers s4109503, Camil Staps s4498062 definition module RefactorX from StdClass import class toString import StdEnv :: Expr = NR Int | VAR Name | OP Expr Operator Expr | LET Name Expr Expr :: Name :== String :: Operator = PLUS | MIN | MUL | DIV :: Val = Result Int | Undef instance toString Expr free :: Expr -> [Name] remove_unused_lets :: Expr -> Expr eval :: Expr -> Val