| ghc-6.10.4: The GHC API | Contents | Index

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)
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
| NoScOrigin
| 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

Instances

Eq Inst
Ord Inst
Outputable 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)
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 |
NoScOrigin |
DerivOrigin |
StandAloneDerivOrigin |
DefaultOrigin |
DoOrigin |
ProcOrigin |
ImplicOrigin SDoc |
EqOrigin |

Instances

Outputable InstOrigin

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.4.2