Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data FlattenMode
- flatten :: FlattenMode -> CtEvidence -> TcType -> TcS (Xi, TcCoercion)
- flattenKind :: CtLoc -> CtFlavour -> TcType -> TcS (Xi, TcCoercionN)
- flattenArgsNom :: CtEvidence -> TyCon -> [TcType] -> TcS ([Xi], [TcCoercion], TcCoercionN)
- rewriteTyVar :: TcTyVar -> TcS TcType
- flattenType :: CtLoc -> TcType -> TcS TcType
- unflattenWanteds :: Cts -> Cts -> TcS Cts
Documentation
data FlattenMode Source #
Instances
Outputable FlattenMode # | |
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).
flattenKind :: CtLoc -> CtFlavour -> TcType -> TcS (Xi, TcCoercionN) Source #
flattenArgsNom :: CtEvidence -> TyCon -> [TcType] -> TcS ([Xi], [TcCoercion], TcCoercionN) Source #