- toString (App l r) = "(" +++ toString l +++ " " +++ toString r +++ ")"
- toString (Lambda a e) = "(\\" +++ toString a +++ "." +++ toString e +++ ")"
- toString (Builtin v as) = "'" +++ toString v +++ "'" +++ join " " (map toString as)
+ toString (App l r) = concat ["(", toString l, " ", toString r, ")"]
+ toString (Lambda a e) = concat ["(\\", toString a, ".", toString e, ")"]
+ toString (Builtin v as) = concat ["'", toString v, "'", join " " (map toString as)]
+ toString (Let i a b r) = concat [toString i, " ", join " " (map toString a), " = ", toString b, "\n", toString r]