|
|
|
|
Synopsis |
|
data Inst | | pprInstances :: [Instance] -> SDoc | | pprDictsTheta :: [Inst] -> SDoc | | pprDictsInFull :: [Inst] -> SDoc | | showLIE :: SDoc -> TcM () | | 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) | | isHsVar :: HsExpr Name -> Name -> Bool | | tyVarsOfInst :: Inst -> TcTyVarSet | | tyVarsOfInsts :: [Inst] -> VarSet | | tyVarsOfLIE :: Bag Inst -> VarSet | | ipNamesOfInst :: Inst -> [Name] | | ipNamesOfInsts :: [Inst] -> [Name] | | fdPredsOfInst :: Inst -> [TcPredType] | | fdPredsOfInsts :: [Inst] -> [PredType] | | 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) | | 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 () |
|
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) |
|
isHsVar :: HsExpr Name -> Name -> Bool |
|
tyVarsOfInst :: Inst -> TcTyVarSet |
|
tyVarsOfInsts :: [Inst] -> VarSet |
|
tyVarsOfLIE :: Bag Inst -> VarSet |
|
ipNamesOfInst :: Inst -> [Name] |
|
ipNamesOfInsts :: [Inst] -> [Name] |
|
fdPredsOfInst :: Inst -> [TcPredType] |
|
fdPredsOfInsts :: [Inst] -> [PredType] |
|
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) |
|
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.3.0 |