try letrec
[minfp.git] / ast.dcl
diff --git a/ast.dcl b/ast.dcl
index eecc8b6..9e733b2 100644 (file)
--- a/ast.dcl
+++ b/ast.dcl
@@ -3,17 +3,14 @@ definition module ast
 from Data.Either import :: Either
 from StdOverloaded import class toString
 
-:: AST = AST [Function]
-
 :: Function = Function [Char] [[Char]] Expression
-
 :: Expression
        = Lit Value
        | Var [Char]
        | App Expression Expression
        | Lambda [Char] Expression
        | Builtin [Char] [Expression]
-       | Let [Char] Expression
+       | Let [Char] [[Char]] Expression Expression
 
 :: Value
        = Int Int
@@ -26,4 +23,4 @@ from StdOverloaded import class toString
        | TBool
        | TFun Type Type
 
-instance toString AST, Function, Expression, Value, Type
+instance toString Expression, Value, Type