toString (App l r) = concat ["(", toString l, " ", toString r, ")"]
toString (Lambda a e) = concat ["(\\", toString a, ".", toString e, ")"]
toString (Let ns r) = concat
- [ "let\n"
- , concat [concat ["\t", toString n, " = ", toString v, "\n"]\\(n, v)<-ns]
+ [ "let ", concat [concat ["\t", toString n, " = ", toString v, "\n"]\\(n, v)<-ns]
, "in\n", toString r]
toString _ = abort "toString Expression not implemented"
instance toString Value where
toString (Int i) = toString i
toString (Bool b) = toString b
- toString (Func a) = concat ["Function "]
+ toString (Lambda` v a) = toString (Lambda v a)
+ toString (Builtin a) = "builtin"