definition module sem 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 instance toString SemError sem :: AST -> SemOutput