strictness, ci
[minfp.git] / ast.dcl
diff --git a/ast.dcl b/ast.dcl
index 72fdf2c..55f98dd 100644 (file)
--- a/ast.dcl
+++ b/ast.dcl
@@ -6,11 +6,11 @@ from StdOverloaded import class toString
 from int import :: Eval
 
 :: Function = Function [Char] [[Char]] Expression
+:: TypeDef = TypeDef [Char] [[Char]] [([Char], [Type])]
 
 :: Expression
        = Lit Value
        | Var [Char]
-       | Tuple Expression Expression
        | App Expression Expression
        | Lambda [Char] Expression
        | Let [([Char], Expression)] Expression
@@ -22,4 +22,11 @@ from int import :: Eval
        | Lambda` [Char] Expression
        | Builtin (Expression -> Eval Expression)
 
-instance toString Function, Expression, Value
+:: Type
+       = TVar [Char]
+       | TInt
+       | TBool
+       | TApp Type Type
+       | (-->) infixr 9 Type Type
+
+instance toString Function, Expression, Value, Type, TypeDef