import qualified Data.Map as Map
from Data.Either import :: Either
-from AST import :: AST, :: Pos, :: Type, :: FieldSelector
+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
- | UndeclaredVariableError Pos String
- | Error String
:: Gamma
:: SemOutput :== Either [SemError] (AST, Gamma)
+:: Constraints :== [(Type, Type)]
instance toString SemError
instance toString Gamma
-sem :: AST -> SemOutput
+sem :: AST -> Either [SemError] AST