Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Hydra.Rules
Description
Inference rules
Documentation
data InferenceContext Source #
Constructors
InferenceContext | |
type TypingEnvironment = Map Name TypeScheme Source #
findMatchingField :: Name -> [FieldType] -> Flow InferenceContext FieldType Source #
generalize :: TypingEnvironment -> Type -> TypeScheme Source #
infer :: Term -> Flow InferenceContext (Term, [Constraint]) Source #
inferFieldType :: Field -> Flow InferenceContext (Field, [Constraint]) Source #
inferLet :: Let -> Flow InferenceContext (Term, [Constraint]) Source #
monotype :: Type -> TypeScheme Source #
reduceType :: Type -> Type Source #
requireName :: Name -> Flow InferenceContext Type Source #
termTypeScheme :: Term -> TypeScheme Source #
withBinding :: Name -> TypeScheme -> Flow InferenceContext x -> Flow InferenceContext x Source #
withBindings :: Map Name TypeScheme -> Flow InferenceContext x -> Flow InferenceContext x Source #
withEnvironment :: (TypingEnvironment -> TypingEnvironment) -> Flow InferenceContext x -> Flow InferenceContext x Source #
withGraphContext :: Flow Graph x -> Flow InferenceContext x Source #
yield :: Term -> Type -> [Constraint] -> Flow InferenceContext (Term, [Constraint]) Source #
yieldFunction :: Function -> Type -> [Constraint] -> Flow InferenceContext (Term, [Constraint]) Source #
yieldElimination :: Elimination -> Type -> [Constraint] -> Flow InferenceContext (Term, [Constraint]) Source #