ghc-9.0.2: The GHC API
Safe Haskell Safe-Inferred Haskell2010

GHC.Tc.Solver

Synopsis

# Documentation

data InferMode Source #

How should we choose which constraints to quantify over?

Constructors

 ApplyMR Apply the monomorphism restriction, never quantifying over any constraints EagerDefaulting See Note [TcRnExprMode] in GHC.Tc.Module, the :type +d case; this mode refuses to quantify over any defaultable constraint NoRestrictions Quantify over any constraint that satisfies pickQuantifiablePreds

#### Instances

Instances details
 Source # Instance detailsDefined in GHC.Tc.Solver Methods

solveEqualities :: TcM a -> TcM a Source #

Type-check a thing that emits only equality constraints, then solve those constraints. Fails outright if there is trouble. Use this if you're not going to get another crack at solving (because, e.g., you're checking a datatype declaration)

Type-check a thing that emits only equality constraints, solving any constraints we can and re-emitting constraints that we can't. The thing_inside should generally bump the TcLevel to make sure that this run of the solver doesn't affect anything lying around.

Normalise a type as much as possible using the given constraints. See Note [tcNormalise].

Simplify top-level constraints, but without reporting any unsolved constraints nor unsafe overlapping.

runTcSDeriveds :: TcS a -> TcM a Source #

This variant of runTcS will keep solving, even when only Deriveds are left around. It also doesn't return any evidence, as callers won't need it.