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