Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- reportUnsolved :: WantedConstraints -> TcM (Bag EvBind)
- reportAllUnsolved :: WantedConstraints -> TcM ()
- warnAllUnsolved :: WantedConstraints -> TcM ()
- warnDefaulting :: TcTyVar -> [Ct] -> Type -> TcM ()
- solverReportMsg_ExpectedActuals :: TcSolverReportMsg -> [(Type, Type)]
Documentation
reportUnsolved :: WantedConstraints -> TcM (Bag EvBind) Source #
Report unsolved goals as errors or warnings. We may also turn some into deferred run-time errors if `-fdefer-type-errors` is on.
reportAllUnsolved :: WantedConstraints -> TcM () Source #
Report *all* unsolved goals as errors, even if -fdefer-type-errors is on However, do not make any evidence bindings, because we don't have any convenient place to put them. NB: Type-level holes are OK, because there are no bindings. See Note [Deferring coercion errors to runtime] Used by solveEqualities for kind equalities (see Note [Failure in local type signatures] in GHC.Tc.Solver)
warnAllUnsolved :: WantedConstraints -> TcM () Source #
Report all unsolved goals as warnings (but without deferring any errors to run-time). See Note [Safe Haskell Overlapping Instances Implementation] in GHC.Tc.Solver
GHC API helper functions
solverReportMsg_ExpectedActuals :: TcSolverReportMsg -> [(Type, Type)] Source #
If the TcSolverReportMsg
is a type mismatch between
an actual and an expected type, return the actual and expected types
(in that order).
Prefer using this over manually inspecting the TcSolverReportMsg
datatype
if you just want this information, as the datatype itself is subject to change
across GHC versions.