definition module check
+from StdOverloaded import class toString
from Data.Either import :: Either
-from ast import :: AST
+from ast import :: Function, :: Expression, :: Type, :: TypeDef
-check :: AST -> Either [String] AST
+:: Scheme = Forall [[Char]] Type
+
+instance toString Scheme
+
+check :: ![Either TypeDef Function] -> Either [String] (Expression, [([Char], Scheme)])