|
|
|
|
| Synopsis |
|
| data Inst | | | pprInstances :: [Instance] -> SDoc | | | pprDictsTheta :: [Inst] -> SDoc | | | pprDictsInFull :: [Inst] -> SDoc | | | showLIE :: SDoc -> TcM () | | | pprInst :: Inst -> SDoc | | | pprInsts :: [Inst] -> SDoc | | | pprInstInFull :: Inst -> SDoc | | | tidyInsts :: [Inst] -> (TidyEnv, [Inst]) | | | tidyMoreInsts :: TidyEnv -> [Inst] -> (TidyEnv, [Inst]) | | | newDictBndr :: InstLoc -> TcPredType -> TcM Inst | | | newDictBndrs :: InstLoc -> TcThetaType -> TcM [Inst] | | | newDictBndrsO :: InstOrigin -> TcThetaType -> TcM [Inst] | | | newDictOccs :: InstLoc -> TcThetaType -> TcM [Inst] | | | newDictOcc :: InstLoc -> TcPredType -> TcM Inst | | | instCall :: InstOrigin -> [TcType] -> TcThetaType -> TcM HsWrapper | | | instStupidTheta :: InstOrigin -> TcThetaType -> TcM () | | | cloneDict :: Inst -> TcM Inst | | | mkOverLit :: OverLitVal -> TcM HsLit | | | newIPDict :: InstOrigin -> IPName Name -> Type -> TcM (IPName Id, Inst) | | | newMethod :: InstLoc -> Id -> [Type] -> TcRn Inst | | | newMethodFromName :: InstOrigin -> BoxyRhoType -> Name -> TcM TcId | | | newMethodWithGivenTy :: InstOrigin -> Id -> [Type] -> TcRn TcId | | | tcInstClassOp :: InstLoc -> Id -> [TcType] -> TcM Inst | | | tcSyntaxName :: InstOrigin -> TcType -> (Name, HsExpr Name) -> TcM (Name, HsExpr TcId) | | | tyVarsOfInst :: Inst -> TyVarSet | | | tyVarsOfInsts :: [Inst] -> TyVarSet | | | tyVarsOfLIE :: Bag Inst -> TyVarSet | | | tcTyVarsOfInst :: Inst -> TyVarSet | | | tcTyVarsOfInsts :: [Inst] -> TcTyVarSet | | | ipNamesOfInst :: Inst -> [Name] | | | ipNamesOfInsts :: [Inst] -> [Name] | | | fdPredsOfInst :: Inst -> [TcPredType] | | | fdPredsOfInsts :: [Inst] -> [PredType] | | | growInstsTyVars :: [Inst] -> TyVarSet -> TyVarSet | | | getDictClassTys :: Inst -> (Class, [Type]) | | | dictPred :: Inst -> TcPredType | | | lookupSimpleInst :: Inst -> TcM LookupInstResult | | | | | tcExtendLocalInstEnv :: [Instance] -> TcM a -> TcM a | | | tcGetInstEnvs :: TcM (InstEnv, InstEnv) | | | getOverlapFlag :: TcM OverlapFlag | | | isAbstractableInst :: Inst -> Bool | | | isEqInst :: Inst -> Bool | | | isDict :: Inst -> Bool | | | isClassDict :: Inst -> Bool | | | isMethod :: Inst -> Bool | | | isImplicInst :: Inst -> Bool | | | isIPDict :: Inst -> Bool | | | isInheritableInst :: Inst -> Bool | | | isMethodOrLit :: Inst -> Bool | | | isTyVarDict :: Inst -> Bool | | | isMethodFor :: TcIdSet -> Inst -> Bool | | | zonkInst :: Inst -> TcM Inst | | | zonkInsts :: [Inst] -> TcRn [Inst] | | | instToId :: Inst -> TcId | | | instToVar :: Inst -> Var | | | instType :: Inst -> Type | | | instName :: Inst -> Name | | | instToDictBind :: Inst -> LHsExpr TcId -> TcDictBinds | | | addInstToDictBind :: TcDictBinds -> Inst -> LHsExpr TcId -> TcDictBinds | | | | | data InstLoc | | | pprInstLoc :: InstLoc -> SDoc | | | mkWantedCo :: TcTyVar -> EqInstCo | | | mkGivenCo :: Coercion -> EqInstCo | | | isWantedCo :: EqInstCo -> Bool | | | eqInstCoType :: EqInstCo -> TcType | | | mkIdEqInstCo :: EqInstCo -> Type -> TcM () | | | mkSymEqInstCo :: EqInstCo -> (Type, Type) -> TcM EqInstCo | | | mkLeftTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCo | | | mkRightTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCo | | | mkAppEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo) | | | mkTyConEqInstCo :: EqInstCo -> TyCon -> [(Type, Type)] -> TcM [EqInstCo] | | | mkFunEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo) | | | wantedEqInstIsUnsolved :: Inst -> TcM Bool | | | eitherEqInst :: Inst -> (TcTyVar -> a) -> (Coercion -> a) -> a | | | mkEqInst :: PredType -> EqInstCo -> TcM Inst | | | mkWantedEqInst :: PredType -> TcM Inst | | | wantedToLocalEqInst :: Inst -> Inst | | | finalizeEqInst :: Inst -> TcM Inst | | | eqInstType :: Inst -> TcType | | | eqInstCoercion :: Inst -> EqInstCo | | | eqInstTys :: Inst -> (TcType, TcType) |
|
|
| Documentation |
|
| data Inst |
Instances | |
|
|
| pprInstances :: [Instance] -> SDoc |
|
| pprDictsTheta :: [Inst] -> SDoc |
|
| pprDictsInFull :: [Inst] -> SDoc |
|
| showLIE :: SDoc -> TcM () |
|
| pprInst :: Inst -> SDoc |
|
| pprInsts :: [Inst] -> SDoc |
|
| pprInstInFull :: Inst -> SDoc |
|
| tidyInsts :: [Inst] -> (TidyEnv, [Inst]) |
|
| tidyMoreInsts :: TidyEnv -> [Inst] -> (TidyEnv, [Inst]) |
|
| newDictBndr :: InstLoc -> TcPredType -> TcM Inst |
|
| newDictBndrs :: InstLoc -> TcThetaType -> TcM [Inst] |
|
| newDictBndrsO :: InstOrigin -> TcThetaType -> TcM [Inst] |
|
| newDictOccs :: InstLoc -> TcThetaType -> TcM [Inst] |
|
| newDictOcc :: InstLoc -> TcPredType -> TcM Inst |
|
| instCall :: InstOrigin -> [TcType] -> TcThetaType -> TcM HsWrapper |
|
| instStupidTheta :: InstOrigin -> TcThetaType -> TcM () |
|
| cloneDict :: Inst -> TcM Inst |
|
| mkOverLit :: OverLitVal -> TcM HsLit |
|
| newIPDict :: InstOrigin -> IPName Name -> Type -> TcM (IPName Id, Inst) |
|
| newMethod :: InstLoc -> Id -> [Type] -> TcRn Inst |
|
| newMethodFromName :: InstOrigin -> BoxyRhoType -> Name -> TcM TcId |
|
| newMethodWithGivenTy :: InstOrigin -> Id -> [Type] -> TcRn TcId |
|
| tcInstClassOp :: InstLoc -> Id -> [TcType] -> TcM Inst |
|
| tcSyntaxName :: InstOrigin -> TcType -> (Name, HsExpr Name) -> TcM (Name, HsExpr TcId) |
|
| tyVarsOfInst :: Inst -> TyVarSet |
| All free type variables (not including the coercion variables of
equalities)
|
|
| tyVarsOfInsts :: [Inst] -> TyVarSet |
|
| tyVarsOfLIE :: Bag Inst -> TyVarSet |
|
| tcTyVarsOfInst :: Inst -> TyVarSet |
| All free meta type variables *including* the coercion variables of
equalities
|
|
| tcTyVarsOfInsts :: [Inst] -> TcTyVarSet |
|
| ipNamesOfInst :: Inst -> [Name] |
|
| ipNamesOfInsts :: [Inst] -> [Name] |
|
| fdPredsOfInst :: Inst -> [TcPredType] |
|
| fdPredsOfInsts :: [Inst] -> [PredType] |
|
| growInstsTyVars :: [Inst] -> TyVarSet -> TyVarSet |
|
| getDictClassTys :: Inst -> (Class, [Type]) |
|
| dictPred :: Inst -> TcPredType |
|
| lookupSimpleInst :: Inst -> TcM LookupInstResult |
|
| data LookupInstResult |
|
|
| tcExtendLocalInstEnv :: [Instance] -> TcM a -> TcM a |
|
| tcGetInstEnvs :: TcM (InstEnv, InstEnv) |
|
| getOverlapFlag :: TcM OverlapFlag |
|
| isAbstractableInst :: Inst -> Bool |
|
| isEqInst :: Inst -> Bool |
|
| isDict :: Inst -> Bool |
|
| isClassDict :: Inst -> Bool |
|
| isMethod :: Inst -> Bool |
|
| isImplicInst :: Inst -> Bool |
|
| isIPDict :: Inst -> Bool |
|
| isInheritableInst :: Inst -> Bool |
|
| isMethodOrLit :: Inst -> Bool |
|
| isTyVarDict :: Inst -> Bool |
|
| isMethodFor :: TcIdSet -> Inst -> Bool |
|
| zonkInst :: Inst -> TcM Inst |
|
| zonkInsts :: [Inst] -> TcRn [Inst] |
|
| instToId :: Inst -> TcId |
|
| instToVar :: Inst -> Var |
|
| instType :: Inst -> Type |
|
| instName :: Inst -> Name |
|
| instToDictBind :: Inst -> LHsExpr TcId -> TcDictBinds |
|
| addInstToDictBind :: TcDictBinds -> Inst -> LHsExpr TcId -> TcDictBinds |
|
| data InstOrigin |
| Constructors | | Instances | |
|
|
| data InstLoc |
|
| pprInstLoc :: InstLoc -> SDoc |
|
| mkWantedCo :: TcTyVar -> EqInstCo |
|
| mkGivenCo :: Coercion -> EqInstCo |
|
| isWantedCo :: EqInstCo -> Bool |
|
| eqInstCoType :: EqInstCo -> TcType |
|
| mkIdEqInstCo :: EqInstCo -> Type -> TcM () |
|
| mkSymEqInstCo :: EqInstCo -> (Type, Type) -> TcM EqInstCo |
|
| mkLeftTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCo |
|
| mkRightTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCo |
|
| mkAppEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo) |
|
| mkTyConEqInstCo :: EqInstCo -> TyCon -> [(Type, Type)] -> TcM [EqInstCo] |
|
| mkFunEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo) |
|
| wantedEqInstIsUnsolved :: Inst -> TcM Bool |
| A wanted equality is unsolved as long as its cotv is unfilled.
|
|
| eitherEqInst :: Inst -> (TcTyVar -> a) -> (Coercion -> a) -> a |
|
| mkEqInst :: PredType -> EqInstCo -> TcM Inst |
|
| mkWantedEqInst :: PredType -> TcM Inst |
|
| wantedToLocalEqInst :: Inst -> Inst |
|
| finalizeEqInst :: Inst -> TcM Inst |
|
| eqInstType :: Inst -> TcType |
|
| eqInstCoercion :: Inst -> EqInstCo |
|
| eqInstTys :: Inst -> (TcType, TcType) |
|
| Produced by Haddock version 2.7.2 |