from Data.Either import :: Either
from AST import :: AST, :: Pos, :: Type
+from StdOverloaded import class toString
:: SemError
= ParseError Pos String
| UnifyError Pos Type Type
+ | UnifyErrorStub Type Type
| Error String
:: SemOutput :== Either [SemError] AST