3 import qualified Data.Map as Map
4 from Data.Either import :: Either
5 from AST import :: AST, :: Pos, :: Type, :: FieldSelector, :: Op2
6 from StdOverloaded import class toString
9 = ParseError Pos String
10 | UnifyError Pos Type Type
11 | FieldSelectorError Pos Type FieldSelector
12 | OperatorError Pos Op2 Type
13 | UndeclaredVariableError Pos String
14 | ArgumentMisMatchError Pos String
17 :: SemOutput :== Either [SemError] (AST, Gamma)
19 instance toString SemError
20 instance toString Gamma
22 sem :: AST -> SemOutput