interpret
[minfp.git] / ast.dcl
diff --git a/ast.dcl b/ast.dcl
index 720855a..5f7b1b5 100644 (file)
--- a/ast.dcl
+++ b/ast.dcl
@@ -1,7 +1,10 @@
 definition module ast
 
+from Data.Either import :: Either
 from StdOverloaded import class toString
 
+from int import :: Eval
+
 :: Function = Function [Char] [[Char]] Expression
 
 :: Expression
@@ -9,12 +12,11 @@ from StdOverloaded import class toString
        | Var [Char]
        | App Expression Expression
        | Lambda [Char] Expression
-       | Builtin [Char] [Expression]
        | Let [Char] Expression Expression
 
 :: Value
        = Int Int
        | Bool Bool
-       | Func Int [Expression] ([Expression] -> Expression)
+       | Func (Expression -> Eval Value)
 
 instance toString Function, Expression, Value