| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.Tc.Zonk.Type
Description
Final zonking to Type. See Note [Zonking to Type].
Distinct from the intra-typechecker zonking in GHC.Tc.Zonk.TcType; see Note [Module structure for zonking].
Synopsis
- type ZonkTcM = ZonkT TcM
 - zonkTopDecls :: Bag EvBind -> LHsBinds GhcTc -> [LRuleDecl GhcTc] -> [LTcSpecPrag] -> [LForeignDecl GhcTc] -> TcM (TypeEnv, Bag EvBind, LHsBinds GhcTc, [LForeignDecl GhcTc], [LTcSpecPrag], [LRuleDecl GhcTc])
 - zonkTopExpr :: HsExpr GhcTc -> TcM (HsExpr GhcTc)
 - zonkTopLExpr :: LHsExpr GhcTc -> TcM (LHsExpr GhcTc)
 - zonkTopBndrs :: [TcId] -> TcM [Id]
 - zonkTyVarBindersX :: [VarBndr TcTyVar vis] -> ZonkBndrTcM [VarBndr TyVar vis]
 - zonkTyVarBinderX :: VarBndr TcTyVar vis -> ZonkBndrTcM (VarBndr TyVar vis)
 - zonkTyBndrsX :: [TcTyVar] -> ZonkBndrTcM [TcTyVar]
 - zonkTcTypeToType :: TcType -> TcM Type
 - zonkTcTypeToTypeX :: TcType -> ZonkTcM Type
 - zonkTcTypesToTypesX :: [TcType] -> ZonkTcM [Type]
 - zonkScaledTcTypesToTypesX :: [Scaled TcType] -> ZonkTcM [Scaled Type]
 - zonkTyVarOcc :: HasDebugCallStack => TcTyVar -> ZonkTcM Type
 - zonkCoToCo :: Coercion -> ZonkTcM Coercion
 - zonkEvBinds :: Bag EvBind -> ZonkBndrTcM (Bag EvBind)
 - zonkTcEvBinds :: TcEvBinds -> ZonkBndrTcM TcEvBinds
 - zonkTcMethInfoToMethInfoX :: TcMethInfo -> ZonkTcM MethInfo
 - lookupTyVarX :: TcTyVar -> ZonkTcM TyVar
 - module GHC.Tc.Zonk.Env
 - isFilledCoercionHole :: CoercionHole -> TcM Bool
 - unpackCoercionHole :: CoercionHole -> TcM Coercion
 - unpackCoercionHole_maybe :: CoercionHole -> TcM (Maybe Coercion)
 - zonkRewriterSet :: RewriterSet -> TcM RewriterSet
 - zonkCtRewriterSet :: Ct -> TcM Ct
 - zonkCtEvRewriterSet :: CtEvidence -> TcM CtEvidence
 - tcInitTidyEnv :: ZonkM TidyEnv
 - tcInitOpenTidyEnv :: [TyCoVar] -> ZonkM TidyEnv
 
Zonking
For a description of "zonking", see Note [What is zonking?].
type ZonkTcM = ZonkT TcM Source #
Zonking monad for a computation that zonks to Type, reading from a ZonkEnv
 but not extending or modifying it.
See Note [Zonking to Type].
zonkTopDecls :: Bag EvBind -> LHsBinds GhcTc -> [LRuleDecl GhcTc] -> [LTcSpecPrag] -> [LForeignDecl GhcTc] -> TcM (TypeEnv, Bag EvBind, LHsBinds GhcTc, [LForeignDecl GhcTc], [LTcSpecPrag], [LRuleDecl GhcTc]) Source #
zonkTyBndrsX :: [TcTyVar] -> ZonkBndrTcM [TcTyVar] Source #
zonkTcTypeToType :: TcType -> TcM Type Source #
Confused by zonking? See Note [What is zonking?] in GHC.Tc.Zonk.Type.
zonkTyVarOcc :: HasDebugCallStack => TcTyVar -> ZonkTcM Type Source #
zonkTcEvBinds :: TcEvBinds -> ZonkBndrTcM TcEvBinds Source #
ZonkEnv, and the ZonkT and ZonkBndrT monad transformers
module GHC.Tc.Zonk.Env
Coercion holes
isFilledCoercionHole :: CoercionHole -> TcM Bool Source #
Is a coercion hole filled in?
unpackCoercionHole :: CoercionHole -> TcM Coercion Source #
Retrieve the contents of a coercion hole. Panics if the hole is unfilled
unpackCoercionHole_maybe :: CoercionHole -> TcM (Maybe Coercion) Source #
Retrieve the contents of a coercion hole, if it is filled
Rewriter sets
zonkRewriterSet :: RewriterSet -> TcM RewriterSet Source #
Check whether any coercion hole in a RewriterSet is still unsolved. Does this by recursively looking through filled coercion holes until one is found that is not yet filled in, at which point this aborts.