cleanup
[minfp.git] / ast.icl
diff --git a/ast.icl b/ast.icl
index 2714a0c..acad3d2 100644 (file)
--- a/ast.icl
+++ b/ast.icl
@@ -9,18 +9,19 @@ instance toString Function where
 instance toString Expression where
        toString (Lit v) = toString v
        toString (Var s) = toString s
-       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]
        toString _ = abort "toString Expression not implemented"
 
 instance toString Value where
        toString (Int i) = toString i
        toString (Bool b) = toString b
-       toString (Func a as _) = "Function arity " +++ toString a +++ " curried " +++ join "," (map toString as)
+       toString (Func a as _) = concat ["Function arity ", toString a, " curried ", join "," (map toString as)]
 
 instance toString Type where
        toString (TVar a) = toString a
        toString TInt = "Int"
        toString TBool = "Bool"
-       toString (TFun a b) = "(" +++ toString a +++ ") ->" +++ toString b
+       toString (TFun a b) = concat ["(", toString a, ") ->", toString b]