ghc-9.0.1: The GHC API
Safe HaskellNone
LanguageHaskell2010

GHC.Tc.Solver.Flatten

Synopsis

Documentation

data FlattenMode Source #

Instances

Instances details
Outputable FlattenMode # 
Instance details

Defined in GHC.Tc.Solver.Flatten

flatten :: FlattenMode -> CtEvidence -> TcType -> TcS (Xi, TcCoercion) Source #

See Note [Flattening]. If (xi, co) <- flatten mode ev ty, then co :: xi ~r ty where r is the role in ev. If mode is FM_FlattenAll, then xi is almost function-free (Note [Almost function-free] in GHC.Tc.Types).

flattenType :: CtLoc -> TcType -> TcS TcType Source #

Flatten a type w.r.t. nominal equality. This is useful to rewrite a type w.r.t. any givens. It does not do type-family reduction. This will never emit new constraints. Call this when the inert set contains only givens.