TcEvidence

ghc-7.6.3: The GHC API

Safe Haskell | None

TcEvidence

# Documentation

data HsWrapper

Constructors

WpHole |
WpCompose HsWrapper HsWrapper |
WpCast TcCoercion |
WpEvLam EvVar |
WpEvApp EvTerm |
WpTyLam TyVar |
WpTyApp KindOrType |
WpLet TcEvBinds |

Instances

Data HsWrapper |
Typeable HsWrapper |
Outputable HsWrapper |

(<.>) :: HsWrapper -> HsWrapper -> HsWrapper

mkWpTyApps :: [Type] -> HsWrapper

mkWpEvApps :: [EvTerm] -> HsWrapper

mkWpEvVarApps :: [EvVar] -> HsWrapper

mkWpTyLams :: [TyVar] -> HsWrapper

mkWpLams :: [Var] -> HsWrapper

mkWpLet :: TcEvBinds -> HsWrapper

idHsWrapper :: HsWrapper

isIdHsWrapper :: HsWrapper -> Bool

pprHsWrapper :: SDoc -> HsWrapper -> SDoc

data TcEvBinds

Constructors

TcEvBinds EvBindsVar |
EvBinds (Bag EvBind) |

Instances

Data TcEvBinds |
Typeable TcEvBinds |
Outputable TcEvBinds |

data EvBindsVar

Constructors

EvBindsVar (IORef EvBindMap) Unique |

Instances

Outputable EvBindsVar |

newtype EvBindMap

Constructors

EvBindMap |
Fields ev_bind_varenv :: VarEnv EvBind

emptyEvBindMap :: EvBindMap

extendEvBinds :: EvBindMap -> EvVar -> EvTerm -> EvBindMap

lookupEvBind :: EvBindMap -> EvVar -> Maybe EvBind

evBindMapBinds :: EvBindMap -> Bag EvBind

data EvBind

Constructors

EvBind EvVar EvTerm |

Instances

Outputable EvBind |

emptyTcEvBinds :: TcEvBinds

isEmptyTcEvBinds :: TcEvBinds -> Bool

data EvTerm

Constructors

EvId EvId |
EvCoercion TcCoercion |
EvCast EvTerm TcCoercion |
EvDFunApp DFunId [Type] [EvTerm] |
EvTupleSel EvTerm Int |
EvTupleMk [EvTerm] |
EvDelayedError Type FastString |
EvSuperClass EvTerm Int |
EvKindCast EvTerm TcCoercion |
EvLit EvLit |

Instances

Data EvTerm |
Typeable EvTerm |
Outputable EvTerm |

mkEvCast :: EvTerm -> TcCoercion -> EvTerm

evVarsOfTerm :: EvTerm -> VarSet

mkEvKindCast :: EvTerm -> TcCoercion -> EvTerm

data EvLit

Constructors

EvNum Integer |
EvStr FastString |

Instances

Data EvLit |
Typeable EvLit |
Outputable EvLit |

evTermCoercion :: EvTerm -> TcCoercion

data TcCoercion

Constructors

TcRefl TcType |
TcTyConAppCo TyCon [TcCoercion] |
TcAppCo TcCoercion TcCoercion |
TcForAllCo TyVar TcCoercion |
TcInstCo TcCoercion TcType |
TcCoVarCo EqVar |
TcAxiomInstCo CoAxiom [TcType] |
TcSymCo TcCoercion |
TcTransCo TcCoercion TcCoercion |
TcNthCo Int TcCoercion |
TcCastCo TcCoercion TcCoercion |
TcLetCo TcEvBinds TcCoercion |

Instances

Data TcCoercion |
Typeable TcCoercion |
Outputable TcCoercion |

mkTcReflCo :: TcType -> TcCoercion

mkTcTyConAppCo :: TyCon -> [TcCoercion] -> TcCoercion

mkTcAppCo :: TcCoercion -> TcCoercion -> TcCoercion

mkTcAppCos :: TcCoercion -> [TcCoercion] -> TcCoercion

mkTcFunCo :: TcCoercion -> TcCoercion -> TcCoercion

mkTcAxInstCo :: CoAxiom -> [TcType] -> TcCoercion

mkTcForAllCo :: Var -> TcCoercion -> TcCoercion

mkTcForAllCos :: [Var] -> TcCoercion -> TcCoercion

mkTcSymCo :: TcCoercion -> TcCoercion

mkTcTransCo :: TcCoercion -> TcCoercion -> TcCoercion

mkTcNthCo :: Int -> TcCoercion -> TcCoercion

mkTcInstCos :: TcCoercion -> [TcType] -> TcCoercion

tcCoercionKind :: TcCoercion -> Pair Type

coVarsOfTcCo :: TcCoercion -> VarSet

isEqVar :: Var -> Bool

mkTcCoVarCo :: EqVar -> TcCoercion

isTcReflCo :: TcCoercion -> Bool

isTcReflCo_maybe :: TcCoercion -> Maybe TcType

getTcCoVar_maybe :: TcCoercion -> Maybe CoVar

liftTcCoSubstWith :: [TyVar] -> [TcCoercion] -> TcType -> TcCoercion