ghc-6.12.2: The GHC APISource codeContentsIndex
Inst
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
data LookupInstResult
= NoInstance
| GenInst [Inst] (LHsExpr TcId)
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
= SigOrigin SkolemInfo
| IPBindOrigin (IPName Name)
| OccurrenceOf Name
| SpecPragOrigin Name
| IPOccOrigin (IPName Name)
| LiteralOrigin (HsOverLit Name)
| NegateOrigin
| ArithSeqOrigin (ArithSeqInfo Name)
| PArrSeqOrigin (ArithSeqInfo Name)
| TupleOrigin
| InstSigOrigin
| ExprSigOrigin
| RecordUpdOrigin
| ViewPatOrigin
| InstScOrigin
| NoScOrigin
| DerivOrigin
| StandAloneDerivOrigin
| DefaultOrigin
| DoOrigin
| ProcOrigin
| ImplicOrigin SDoc
| EqOrigin
| AnnOrigin
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 Source
show/hide Instances
pprInstances :: [Instance] -> SDocSource
pprDictsTheta :: [Inst] -> SDocSource
pprDictsInFull :: [Inst] -> SDocSource
showLIE :: SDoc -> TcM ()Source
pprInst :: Inst -> SDocSource
pprInsts :: [Inst] -> SDocSource
pprInstInFull :: Inst -> SDocSource
tidyInsts :: [Inst] -> (TidyEnv, [Inst])Source
tidyMoreInsts :: TidyEnv -> [Inst] -> (TidyEnv, [Inst])Source
newDictBndr :: InstLoc -> TcPredType -> TcM InstSource
newDictBndrs :: InstLoc -> TcThetaType -> TcM [Inst]Source
newDictBndrsO :: InstOrigin -> TcThetaType -> TcM [Inst]Source
newDictOccs :: InstLoc -> TcThetaType -> TcM [Inst]Source
newDictOcc :: InstLoc -> TcPredType -> TcM InstSource
instCall :: InstOrigin -> [TcType] -> TcThetaType -> TcM HsWrapperSource
instStupidTheta :: InstOrigin -> TcThetaType -> TcM ()Source
cloneDict :: Inst -> TcM InstSource
mkOverLit :: OverLitVal -> TcM HsLitSource
newIPDict :: InstOrigin -> IPName Name -> Type -> TcM (IPName Id, Inst)Source
newMethod :: InstLoc -> Id -> [Type] -> TcRn InstSource
newMethodFromName :: InstOrigin -> BoxyRhoType -> Name -> TcM TcIdSource
newMethodWithGivenTy :: InstOrigin -> Id -> [Type] -> TcRn TcIdSource
tcInstClassOp :: InstLoc -> Id -> [TcType] -> TcM InstSource
tcSyntaxName :: InstOrigin -> TcType -> (Name, HsExpr Name) -> TcM (Name, HsExpr TcId)Source
tyVarsOfInst :: Inst -> TyVarSetSource
All free type variables (not including the coercion variables of equalities)
tyVarsOfInsts :: [Inst] -> TyVarSetSource
tyVarsOfLIE :: Bag Inst -> TyVarSetSource
tcTyVarsOfInst :: Inst -> TyVarSetSource
All free meta type variables *including* the coercion variables of equalities
tcTyVarsOfInsts :: [Inst] -> TcTyVarSetSource
ipNamesOfInst :: Inst -> [Name]Source
ipNamesOfInsts :: [Inst] -> [Name]Source
fdPredsOfInst :: Inst -> [TcPredType]Source
fdPredsOfInsts :: [Inst] -> [PredType]Source
growInstsTyVars :: [Inst] -> TyVarSet -> TyVarSetSource
getDictClassTys :: Inst -> (Class, [Type])Source
dictPred :: Inst -> TcPredTypeSource
lookupSimpleInst :: Inst -> TcM LookupInstResultSource
data LookupInstResult Source
Constructors
NoInstance
GenInst [Inst] (LHsExpr TcId)
tcExtendLocalInstEnv :: [Instance] -> TcM a -> TcM aSource
tcGetInstEnvs :: TcM (InstEnv, InstEnv)Source
getOverlapFlag :: TcM OverlapFlagSource
isAbstractableInst :: Inst -> BoolSource
isEqInst :: Inst -> BoolSource
isDict :: Inst -> BoolSource
isClassDict :: Inst -> BoolSource
isMethod :: Inst -> BoolSource
isImplicInst :: Inst -> BoolSource
isIPDict :: Inst -> BoolSource
isInheritableInst :: Inst -> BoolSource
isMethodOrLit :: Inst -> BoolSource
isTyVarDict :: Inst -> BoolSource
isMethodFor :: TcIdSet -> Inst -> BoolSource
zonkInst :: Inst -> TcM InstSource
zonkInsts :: [Inst] -> TcRn [Inst]Source
instToId :: Inst -> TcIdSource
instToVar :: Inst -> VarSource
instType :: Inst -> TypeSource
instName :: Inst -> NameSource
instToDictBind :: Inst -> LHsExpr TcId -> TcDictBindsSource
addInstToDictBind :: TcDictBinds -> Inst -> LHsExpr TcId -> TcDictBindsSource
data InstOrigin Source
Constructors
SigOrigin SkolemInfo
IPBindOrigin (IPName Name)
OccurrenceOf Name
SpecPragOrigin Name
IPOccOrigin (IPName Name)
LiteralOrigin (HsOverLit Name)
NegateOrigin
ArithSeqOrigin (ArithSeqInfo Name)
PArrSeqOrigin (ArithSeqInfo Name)
TupleOrigin
InstSigOrigin
ExprSigOrigin
RecordUpdOrigin
ViewPatOrigin
InstScOrigin
NoScOrigin
DerivOrigin
StandAloneDerivOrigin
DefaultOrigin
DoOrigin
ProcOrigin
ImplicOrigin SDoc
EqOrigin
AnnOrigin
show/hide Instances
data InstLoc Source
pprInstLoc :: InstLoc -> SDocSource
mkWantedCo :: TcTyVar -> EqInstCoSource
mkGivenCo :: Coercion -> EqInstCoSource
isWantedCo :: EqInstCo -> BoolSource
eqInstCoType :: EqInstCo -> TcTypeSource
mkIdEqInstCo :: EqInstCo -> Type -> TcM ()Source
mkSymEqInstCo :: EqInstCo -> (Type, Type) -> TcM EqInstCoSource
mkLeftTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCoSource
mkRightTransEqInstCo :: EqInstCo -> Coercion -> (Type, Type) -> TcM EqInstCoSource
mkAppEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo)Source
mkTyConEqInstCo :: EqInstCo -> TyCon -> [(Type, Type)] -> TcM [EqInstCo]Source
mkFunEqInstCo :: EqInstCo -> (Type, Type) -> (Type, Type) -> TcM (EqInstCo, EqInstCo)Source
wantedEqInstIsUnsolved :: Inst -> TcM BoolSource
A wanted equality is unsolved as long as its cotv is unfilled.
eitherEqInst :: Inst -> (TcTyVar -> a) -> (Coercion -> a) -> aSource
mkEqInst :: PredType -> EqInstCo -> TcM InstSource
mkWantedEqInst :: PredType -> TcM InstSource
wantedToLocalEqInst :: Inst -> InstSource
finalizeEqInst :: Inst -> TcM InstSource
eqInstType :: Inst -> TcTypeSource
eqInstCoercion :: Inst -> EqInstCoSource
eqInstTys :: Inst -> (TcType, TcType)Source
Produced by Haddock version 2.6.1