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] | TTuple Type Type | TInt | TBool | (-->) infixr 9 Type Type
-instance toString Scheme, Type
+instance toString Scheme
-check :: [Function] -> Either [String] (Expression, [([Char], Scheme)])
+check :: ![Either TypeDef Function] -> Either [String] (Expression, [([Char], Scheme)])