import qualified Data.Map as Map
from Data.Either import :: Either
-from AST import :: AST, :: Pos, :: Type
+from AST import :: AST, :: Pos, :: Type, :: FieldSelector, :: Op2
from StdOverloaded import class toString
:: SemError
= ParseError Pos String
| UnifyError Pos Type Type
- | UnifyErrorStub Type Type
+ | FieldSelectorError Pos Type FieldSelector
+ | OperatorError Pos Op2 Type
+ | UndeclaredVariableError Pos String
| Error String
:: Gamma
:: SemOutput :== Either [SemError] (AST, Gamma)