ghc-6.10.1: The GHC APIContentsIndex
Inst
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
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
| DerivOrigin
| StandAloneDerivOrigin
| DefaultOrigin
| DoOrigin
| ProcOrigin
| ImplicOrigin SDoc
| EqOrigin
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
show/hide 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
Constructors
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
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
DerivOrigin
StandAloneDerivOrigin
DefaultOrigin
DoOrigin
ProcOrigin
ImplicOrigin SDoc
EqOrigin
show/hide 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