ghc-9.2.5: The GHC API

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 :: String -> TcM a -> TcM a Source #

Type-check a thing that emits only equality constraints, solving any constraints we can and re-emitting constraints that we can't. Use this variant only when we'll get another crack at it later See Note [Failure in local type signatures]

Panics if we solve any non-equality constraints. (In runTCSEqualities we use an error thunk for the evidence bindings.)

Return (Just new_inerts) if the Givens are satisfiable, Nothing if definitely contradictory

Return True if the Wanteds are soluble, False if not

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.