strictness, ci
[minfp.git] / check.dcl
index 91059a7..8abb9db 100644 (file)
--- a/check.dcl
+++ b/check.dcl
@@ -2,11 +2,10 @@ definition module check
 
 from StdOverloaded import class toString
 from Data.Either import :: Either
-from ast import :: Function, :: Expression
+from ast import :: Function, :: Expression, :: Type, :: TypeDef
 
 :: Scheme = Forall [[Char]] Type
-:: Type = TVar [Char] | TInt | TBool | (-->) infixr 9 Type Type
 
-instance toString Scheme, Type
+instance toString Scheme
 
-check :: [Function] -> Either [String] (Expression, Scheme)
+check :: ![Either TypeDef Function] -> Either [String] (Expression, [([Char], Scheme)])