Safe Haskell | None |
---|
TcUnify
Documentation
tcSubType :: CtOrigin -> UserTypeCtxt -> TcSigmaType -> TcSigmaType -> TcM HsWrapper
tcGen :: UserTypeCtxt -> TcType -> ([TcTyVar] -> TcRhoType -> TcM result) -> TcM (HsWrapper, result)
checkConstraints :: SkolemInfo -> [TcTyVar] -> [EvVar] -> TcM result -> TcM (TcEvBinds, result)
newImplication :: SkolemInfo -> [TcTyVar] -> [EvVar] -> TcM result -> TcM (TcEvBinds, result)
unifyType :: TcTauType -> TcTauType -> TcM TcCoercion
unifyTypeList :: [TcTauType] -> TcM ()
unifyTheta :: TcThetaType -> TcThetaType -> TcM [TcCoercion]
unifyKindEq :: TcKind -> TcKind -> TcM ()
matchExpectedListTy :: TcRhoType -> TcM (TcCoercion, TcRhoType)
matchExpectedPArrTy :: TcRhoType -> TcM (TcCoercion, TcRhoType)
matchExpectedTyConApp :: TyCon -> TcRhoType -> TcM (TcCoercion, [TcSigmaType])
matchExpectedAppTy :: TcRhoType -> TcM (TcCoercion, (TcSigmaType, TcSigmaType))
matchExpectedFunTys :: SDoc -> Arity -> TcRhoType -> TcM (TcCoercion, [TcSigmaType], TcRhoType)
wrapFunResCoercion :: [TcType] -> HsWrapper -> TcM HsWrapper