Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module is not used by GHC itself. Rather, it exports all of the functions and types you are likely to need when writing a plugin for GHC. So authors of plugins can probably get away simply with saying "import GHC.Plugins".
Particularly interesting modules for plugin writers include GHC.Core and GHC.Core.Opt.Monad.
Synopsis
- data OccName
- data NameSpace
- emptyFsEnv :: FastStringEnv a
- extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a
- lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a
- mkFsEnv :: [(FastString, a)] -> FastStringEnv a
- alterOccEnv :: (Maybe elt -> Maybe elt) -> OccEnv elt -> OccName -> OccEnv elt
- avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv
- clsName :: NameSpace
- dataName :: NameSpace
- delFromOccEnv :: OccEnv a -> OccName -> OccEnv a
- delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a
- delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv
- demoteOccName :: OccName -> Maybe OccName
- elemOccEnv :: OccName -> OccEnv a -> Bool
- elemOccSet :: OccName -> OccSet -> Bool
- emptyOccEnv :: OccEnv a
- emptyOccSet :: OccSet
- emptyTidyOccEnv :: TidyOccEnv
- extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a
- extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a
- extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b
- extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a
- extendOccSet :: OccSet -> OccName -> OccSet
- extendOccSetList :: OccSet -> [OccName] -> OccSet
- filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt
- filterOccSet :: (OccName -> Bool) -> OccSet -> OccSet
- foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b
- initTidyOccEnv :: [OccName] -> TidyOccEnv
- intersectOccSet :: OccSet -> OccSet -> OccSet
- isDataConNameSpace :: NameSpace -> Bool
- isDataOcc :: OccName -> Bool
- isDataSymOcc :: OccName -> Bool
- isDefaultMethodOcc :: OccName -> Bool
- isDerivedOccName :: OccName -> Bool
- isEmptyOccSet :: OccSet -> Bool
- isSymOcc :: OccName -> Bool
- isTcClsNameSpace :: NameSpace -> Bool
- isTcOcc :: OccName -> Bool
- isTvNameSpace :: NameSpace -> Bool
- isTvOcc :: OccName -> Bool
- isTypeableBindOcc :: OccName -> Bool
- isValNameSpace :: NameSpace -> Bool
- isValOcc :: OccName -> Bool
- isVarNameSpace :: NameSpace -> Bool
- isVarOcc :: OccName -> Bool
- lookupOccEnv :: OccEnv a -> OccName -> Maybe a
- mapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b
- minusOccSet :: OccSet -> OccSet -> OccSet
- mkBuilderOcc :: OccName -> OccName
- mkClassDataConOcc :: OccName -> OccName
- mkClassOpAuxOcc :: OccName -> OccName
- mkClsOcc :: String -> OccName
- mkClsOccFS :: FastString -> OccName
- mkCon2TagOcc :: OccName -> OccName
- mkDFunOcc :: String -> Bool -> OccSet -> OccName
- mkDataCOcc :: OccName -> OccName
- mkDataConWorkerOcc :: OccName -> OccName
- mkDataConWrapperOcc :: OccName -> OccName
- mkDataOcc :: String -> OccName
- mkDataOccFS :: FastString -> OccName
- mkDataTOcc :: OccName -> OccName
- mkDefaultMethodOcc :: OccName -> OccName
- mkDictOcc :: OccName -> OccName
- mkEqPredCoOcc :: OccName -> OccName
- mkForeignExportOcc :: OccName -> OccName
- mkGen1R :: OccName -> OccName
- mkGenR :: OccName -> OccName
- mkIPOcc :: OccName -> OccName
- mkInstTyCoOcc :: OccName -> OccName
- mkInstTyTcOcc :: String -> OccSet -> OccName
- mkLocalOcc :: Unique -> OccName -> OccName
- mkMatcherOcc :: OccName -> OccName
- mkMaxTagOcc :: OccName -> OccName
- mkMethodOcc :: OccName -> OccName
- mkNewTyCoOcc :: OccName -> OccName
- mkOccEnv :: [(OccName, a)] -> OccEnv a
- mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a
- mkOccName :: NameSpace -> String -> OccName
- mkOccNameFS :: NameSpace -> FastString -> OccName
- mkOccSet :: [OccName] -> OccSet
- mkRecFldSelOcc :: String -> OccName
- mkRepEqOcc :: OccName -> OccName
- mkSpecOcc :: OccName -> OccName
- mkSuperDictAuxOcc :: Int -> OccName -> OccName
- mkSuperDictSelOcc :: Int -> OccName -> OccName
- mkTag2ConOcc :: OccName -> OccName
- mkTcOcc :: String -> OccName
- mkTcOccFS :: FastString -> OccName
- mkTyConRepOcc :: OccName -> OccName
- mkTyVarOcc :: String -> OccName
- mkTyVarOccFS :: FastString -> OccName
- mkVarOcc :: String -> OccName
- mkVarOccFS :: FastString -> OccName
- mkWorkerOcc :: OccName -> OccName
- occEnvElts :: OccEnv a -> [a]
- occNameString :: OccName -> String
- parenSymOcc :: OccName -> SDoc -> SDoc
- plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a
- plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a
- pprNameSpace :: NameSpace -> SDoc
- pprNameSpaceBrief :: NameSpace -> SDoc
- pprNonVarNameSpace :: NameSpace -> SDoc
- pprOccEnv :: (a -> SDoc) -> OccEnv a -> SDoc
- pprOccName :: OccName -> SDoc
- promoteOccName :: OccName -> Maybe OccName
- setOccNameSpace :: NameSpace -> OccName -> OccName
- srcDataName :: NameSpace
- startsWithUnderscore :: OccName -> Bool
- tcClsName :: NameSpace
- tcName :: NameSpace
- tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName)
- tvName :: NameSpace
- unionManyOccSets :: [OccSet] -> OccSet
- unionOccSets :: OccSet -> OccSet -> OccSet
- unitOccEnv :: OccName -> a -> OccEnv a
- unitOccSet :: OccName -> OccSet
- type FastStringEnv a = UniqFM FastString a
- class HasOccName name where
- data OccEnv a
- type OccSet = UniqSet OccName
- type TidyOccEnv = UniqFM FastString Int
- data Name
- data OccName
- data NameSpace
- emptyFsEnv :: FastStringEnv a
- extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a
- lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a
- mkFsEnv :: [(FastString, a)] -> FastStringEnv a
- getOccFS :: NamedThing a => a -> FastString
- getOccString :: NamedThing a => a -> String
- getSrcLoc :: NamedThing a => a -> SrcLoc
- getSrcSpan :: NamedThing a => a -> SrcSpan
- isBuiltInSyntax :: Name -> Bool
- isDataConName :: Name -> Bool
- isDynLinkName :: Platform -> Module -> Name -> Bool
- isExternalName :: Name -> Bool
- isHoleName :: Name -> Bool
- isInternalName :: Name -> Bool
- isSystemName :: Name -> Bool
- isTyConName :: Name -> Bool
- isTyVarName :: Name -> Bool
- isValName :: Name -> Bool
- isVarName :: Name -> Bool
- isWiredIn :: NamedThing thing => thing -> Bool
- isWiredInName :: Name -> Bool
- localiseName :: Name -> Name
- mkClonedInternalName :: Unique -> Name -> Name
- mkDerivedInternalName :: (OccName -> OccName) -> Unique -> Name -> Name
- mkExternalName :: Unique -> Module -> OccName -> SrcSpan -> Name
- mkFCallName :: Unique -> String -> Name
- mkInternalName :: Unique -> OccName -> SrcSpan -> Name
- mkSysTvName :: Unique -> FastString -> Name
- mkSystemName :: Unique -> OccName -> Name
- mkSystemNameAt :: Unique -> OccName -> SrcSpan -> Name
- mkSystemVarName :: Unique -> FastString -> Name
- mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name
- nameIsFromExternalPackage :: HomeUnit -> Name -> Bool
- nameIsHomePackage :: Module -> Name -> Bool
- nameIsHomePackageImport :: Module -> Name -> Bool
- nameIsLocalOrFrom :: Module -> Name -> Bool
- nameModule :: HasDebugCallStack => Name -> Module
- nameModule_maybe :: Name -> Maybe Module
- nameNameSpace :: Name -> NameSpace
- nameOccName :: Name -> OccName
- nameSrcLoc :: Name -> SrcLoc
- nameSrcSpan :: Name -> SrcSpan
- nameStableString :: Name -> String
- nameUnique :: Name -> Unique
- pprDefinedAt :: Name -> SDoc
- pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc
- pprModulePrefix :: PprStyle -> Module -> OccName -> SDoc
- pprNameDefnLoc :: Name -> SDoc
- pprNameUnqualified :: Name -> SDoc
- pprPrefixName :: NamedThing a => a -> SDoc
- setNameLoc :: Name -> SrcSpan -> Name
- setNameUnique :: Name -> Unique -> Name
- stableNameCmp :: Name -> Name -> Ordering
- tidyNameOcc :: Name -> OccName -> Name
- wiredInNameTyThing_maybe :: Name -> Maybe TyThing
- alterOccEnv :: (Maybe elt -> Maybe elt) -> OccEnv elt -> OccName -> OccEnv elt
- avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv
- clsName :: NameSpace
- dataName :: NameSpace
- delFromOccEnv :: OccEnv a -> OccName -> OccEnv a
- delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a
- delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv
- demoteOccName :: OccName -> Maybe OccName
- elemOccEnv :: OccName -> OccEnv a -> Bool
- elemOccSet :: OccName -> OccSet -> Bool
- emptyOccEnv :: OccEnv a
- emptyOccSet :: OccSet
- emptyTidyOccEnv :: TidyOccEnv
- extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a
- extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a
- extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b
- extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a
- extendOccSet :: OccSet -> OccName -> OccSet
- extendOccSetList :: OccSet -> [OccName] -> OccSet
- filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt
- filterOccSet :: (OccName -> Bool) -> OccSet -> OccSet
- foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b
- initTidyOccEnv :: [OccName] -> TidyOccEnv
- intersectOccSet :: OccSet -> OccSet -> OccSet
- isDataConNameSpace :: NameSpace -> Bool
- isDataOcc :: OccName -> Bool
- isDataSymOcc :: OccName -> Bool
- isDefaultMethodOcc :: OccName -> Bool
- isDerivedOccName :: OccName -> Bool
- isEmptyOccSet :: OccSet -> Bool
- isSymOcc :: OccName -> Bool
- isTcClsNameSpace :: NameSpace -> Bool
- isTcOcc :: OccName -> Bool
- isTvNameSpace :: NameSpace -> Bool
- isTvOcc :: OccName -> Bool
- isTypeableBindOcc :: OccName -> Bool
- isValNameSpace :: NameSpace -> Bool
- isValOcc :: OccName -> Bool
- isVarNameSpace :: NameSpace -> Bool
- isVarOcc :: OccName -> Bool
- lookupOccEnv :: OccEnv a -> OccName -> Maybe a
- mapOccEnv :: (a -> b) -> OccEnv a -> OccEnv b
- minusOccSet :: OccSet -> OccSet -> OccSet
- mkBuilderOcc :: OccName -> OccName
- mkClassDataConOcc :: OccName -> OccName
- mkClassOpAuxOcc :: OccName -> OccName
- mkClsOcc :: String -> OccName
- mkClsOccFS :: FastString -> OccName
- mkCon2TagOcc :: OccName -> OccName
- mkDFunOcc :: String -> Bool -> OccSet -> OccName
- mkDataCOcc :: OccName -> OccName
- mkDataConWorkerOcc :: OccName -> OccName
- mkDataConWrapperOcc :: OccName -> OccName
- mkDataOcc :: String -> OccName
- mkDataOccFS :: FastString -> OccName
- mkDataTOcc :: OccName -> OccName
- mkDefaultMethodOcc :: OccName -> OccName
- mkDictOcc :: OccName -> OccName
- mkEqPredCoOcc :: OccName -> OccName
- mkForeignExportOcc :: OccName -> OccName
- mkGen1R :: OccName -> OccName
- mkGenR :: OccName -> OccName
- mkIPOcc :: OccName -> OccName
- mkInstTyCoOcc :: OccName -> OccName
- mkInstTyTcOcc :: String -> OccSet -> OccName
- mkLocalOcc :: Unique -> OccName -> OccName
- mkMatcherOcc :: OccName -> OccName
- mkMaxTagOcc :: OccName -> OccName
- mkMethodOcc :: OccName -> OccName
- mkNewTyCoOcc :: OccName -> OccName
- mkOccEnv :: [(OccName, a)] -> OccEnv a
- mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a
- mkOccName :: NameSpace -> String -> OccName
- mkOccNameFS :: NameSpace -> FastString -> OccName
- mkOccSet :: [OccName] -> OccSet
- mkRecFldSelOcc :: String -> OccName
- mkRepEqOcc :: OccName -> OccName
- mkSpecOcc :: OccName -> OccName
- mkSuperDictAuxOcc :: Int -> OccName -> OccName
- mkSuperDictSelOcc :: Int -> OccName -> OccName
- mkTag2ConOcc :: OccName -> OccName
- mkTcOcc :: String -> OccName
- mkTcOccFS :: FastString -> OccName
- mkTyConRepOcc :: OccName -> OccName
- mkTyVarOcc :: String -> OccName
- mkTyVarOccFS :: FastString -> OccName
- mkVarOcc :: String -> OccName
- mkVarOccFS :: FastString -> OccName
- mkWorkerOcc :: OccName -> OccName
- occEnvElts :: OccEnv a -> [a]
- occNameString :: OccName -> String
- parenSymOcc :: OccName -> SDoc -> SDoc
- plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a
- plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a
- pprNameSpace :: NameSpace -> SDoc
- pprNameSpaceBrief :: NameSpace -> SDoc
- pprNonVarNameSpace :: NameSpace -> SDoc
- pprOccEnv :: (a -> SDoc) -> OccEnv a -> SDoc
- pprOccName :: OccName -> SDoc
- promoteOccName :: OccName -> Maybe OccName
- setOccNameSpace :: NameSpace -> OccName -> OccName
- srcDataName :: NameSpace
- startsWithUnderscore :: OccName -> Bool
- tcClsName :: NameSpace
- tcName :: NameSpace
- tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName)
- tvName :: NameSpace
- unionManyOccSets :: [OccSet] -> OccSet
- unionOccSets :: OccSet -> OccSet -> OccSet
- unitOccEnv :: OccName -> a -> OccEnv a
- unitOccSet :: OccName -> OccSet
- type FastStringEnv a = UniqFM FastString a
- data BuiltInSyntax
- class NamedThing a where
- getOccName :: a -> OccName
- getName :: a -> Name
- class HasOccName name where
- data OccEnv a
- type OccSet = UniqSet OccName
- type TidyOccEnv = UniqFM FastString Int
- data Var
- type Id = Var
- globaliseId :: Id -> Id
- idDetails :: Id -> IdDetails
- idInfo :: HasDebugCallStack => Id -> IdInfo
- isExportedId :: Var -> Bool
- isGlobalId :: Var -> Bool
- isId :: Var -> Bool
- isLocalId :: Var -> Bool
- setIdMult :: Id -> Mult -> Id
- updateIdTypeAndMult :: (Type -> Type) -> Id -> Id
- updateIdTypeAndMultM :: Monad m => (Type -> m Type) -> Id -> m Id
- updateIdTypeButNotMult :: (Type -> Type) -> Id -> Id
- type InId = Id
- type InVar = Var
- type JoinId = Id
- type OutId = Id
- type OutVar = Var
- asJoinId :: Id -> JoinArity -> JoinId
- asJoinId_maybe :: Id -> Maybe JoinArity -> Id
- clearOneShotLambda :: Id -> Id
- hasNoBinding :: Id -> Bool
- idArity :: Id -> Arity
- idCafInfo :: Id -> CafInfo
- idCallArity :: Id -> Arity
- idCoreRules :: Id -> [CoreRule]
- idCprSig :: Id -> CprSig
- idDataCon :: Id -> DataCon
- idDemandInfo :: Id -> Demand
- idDmdSig :: Id -> DmdSig
- idFunRepArity :: Id -> RepArity
- idHasRules :: Id -> Bool
- idInlineActivation :: Id -> Activation
- idInlinePragma :: Id -> InlinePragma
- idIsFrom :: Module -> Id -> Bool
- idJoinArity :: JoinId -> JoinArity
- idLFInfo_maybe :: Id -> Maybe LambdaFormInfo
- idMult :: Id -> Mult
- idName :: Id -> Name
- idOccInfo :: Id -> OccInfo
- idOneShotInfo :: Id -> OneShotInfo
- idRuleMatchInfo :: Id -> RuleMatchInfo
- idScaledType :: Id -> Scaled Type
- idSpecialisation :: Id -> RuleInfo
- idStateHackOneShotInfo :: Id -> OneShotInfo
- idType :: Id -> Kind
- idUnfolding :: Id -> Unfolding
- idUnique :: Id -> Unique
- isClassOpId :: Id -> Bool
- isClassOpId_maybe :: Id -> Maybe Class
- isConLikeId :: Id -> Bool
- isDFunId :: Id -> Bool
- isDataConId_maybe :: Id -> Maybe DataCon
- isDataConRecordSelector :: Id -> Bool
- isDataConWorkId :: Id -> Bool
- isDataConWorkId_maybe :: Id -> Maybe DataCon
- isDataConWrapId :: Id -> Bool
- isDataConWrapId_maybe :: Id -> Maybe DataCon
- isDeadBinder :: Id -> Bool
- isDeadEndId :: Var -> Bool
- isFCallId :: Id -> Bool
- isFCallId_maybe :: Id -> Maybe ForeignCall
- isImplicitId :: Id -> Bool
- isJoinId :: Var -> Bool
- isJoinId_maybe :: Var -> Maybe JoinArity
- isNaughtyRecordSelector :: Id -> Bool
- isNeverLevPolyId :: Id -> Bool
- isOneShotBndr :: Var -> Bool
- isPatSynRecordSelector :: Id -> Bool
- isPrimOpId :: Id -> Bool
- isPrimOpId_maybe :: Id -> Maybe PrimOp
- isProbablyOneShotLambda :: Id -> Bool
- isRecordSelector :: Id -> Bool
- isStateHackType :: Type -> Bool
- isStrictId :: Id -> Bool
- localiseId :: Id -> Id
- maybeModifyIdInfo :: Maybe IdInfo -> Id -> Id
- mkExportedLocalId :: IdDetails -> Name -> Type -> Id
- mkExportedVanillaId :: Name -> Type -> Id
- mkGlobalId :: IdDetails -> Name -> Type -> IdInfo -> Id
- mkLocalCoVar :: Name -> Type -> CoVar
- mkLocalId :: HasDebugCallStack => Name -> Mult -> Type -> Id
- mkLocalIdOrCoVar :: Name -> Mult -> Type -> Id
- mkLocalIdWithInfo :: HasDebugCallStack => Name -> Mult -> Type -> IdInfo -> Id
- mkScaledTemplateLocal :: Int -> Scaled Type -> Id
- mkSysLocal :: FastString -> Unique -> Mult -> Type -> Id
- mkSysLocalM :: MonadUnique m => FastString -> Mult -> Type -> m Id
- mkSysLocalOrCoVar :: FastString -> Unique -> Mult -> Type -> Id
- mkSysLocalOrCoVarM :: MonadUnique m => FastString -> Mult -> Type -> m Id
- mkTemplateLocal :: Int -> Type -> Id
- mkTemplateLocals :: [Type] -> [Id]
- mkTemplateLocalsNum :: Int -> [Type] -> [Id]
- mkUserLocal :: OccName -> Unique -> Mult -> Type -> SrcSpan -> Id
- mkUserLocalOrCoVar :: OccName -> Unique -> Mult -> Type -> SrcSpan -> Id
- mkVanillaGlobal :: Name -> Type -> Id
- mkVanillaGlobalWithInfo :: Name -> Type -> IdInfo -> Id
- mkWorkerId :: Unique -> Id -> Type -> Id
- modifyIdInfo :: HasDebugCallStack => (IdInfo -> IdInfo) -> Id -> Id
- modifyInlinePragma :: Id -> (InlinePragma -> InlinePragma) -> Id
- realIdUnfolding :: Id -> Unfolding
- recordSelectorTyCon :: Id -> RecSelParent
- recordSelectorTyCon_maybe :: Id -> Maybe RecSelParent
- scaleIdBy :: Mult -> Id -> Id
- scaleVarBy :: Mult -> Var -> Var
- setCaseBndrEvald :: StrictnessMark -> Id -> Id
- setIdArity :: Id -> Arity -> Id
- setIdCafInfo :: Id -> CafInfo -> Id
- setIdCallArity :: Id -> Arity -> Id
- setIdCprSig :: Id -> CprSig -> Id
- setIdDemandInfo :: Id -> Demand -> Id
- setIdDmdSig :: Id -> DmdSig -> Id
- setIdInfo :: Id -> IdInfo -> Id
- setIdLFInfo :: Id -> LambdaFormInfo -> Id
- setIdName :: Id -> Name -> Id
- setIdOccInfo :: Id -> OccInfo -> Id
- setIdOneShotInfo :: Id -> OneShotInfo -> Id
- setIdSpecialisation :: Id -> RuleInfo -> Id
- setIdType :: Id -> Type -> Id
- setIdUnfolding :: Id -> Unfolding -> Id
- setIdUnique :: Id -> Unique -> Id
- setInlineActivation :: Id -> Activation -> Id
- setInlinePragma :: Id -> InlinePragma -> Id
- setOneShotLambda :: Id -> Id
- stateHackOneShot :: OneShotInfo
- transferPolyIdInfo :: Id -> [Var] -> Id -> Id
- typeOneShot :: Type -> OneShotInfo
- updOneShotInfo :: Id -> OneShotInfo -> Id
- zapFragileIdInfo :: Id -> Id
- zapIdDemandInfo :: Id -> Id
- zapIdDmdSig :: Id -> Id
- zapIdOccInfo :: Id -> Id
- zapIdTailCallInfo :: Id -> Id
- zapIdUsageEnvInfo :: Id -> Id
- zapIdUsageInfo :: Id -> Id
- zapIdUsedOnceInfo :: Id -> Id
- zapJoinId :: Id -> Id
- zapLamIdInfo :: Id -> Id
- zapStableUnfolding :: Id -> Id
- extendTCvSubst :: TCvSubst -> TyCoVar -> Type -> TCvSubst
- type TvSubstEnv = TyVarEnv Type
- data InScopeSet
- addInScopeSet :: Subst -> VarSet -> Subst
- cloneBndr :: Subst -> Unique -> Var -> (Subst, Var)
- cloneBndrs :: Subst -> UniqSupply -> [Var] -> (Subst, [Var])
- cloneIdBndr :: Subst -> UniqSupply -> Id -> (Subst, Id)
- cloneIdBndrs :: Subst -> UniqSupply -> [Id] -> (Subst, [Id])
- cloneRecIdBndrs :: Subst -> UniqSupply -> [Id] -> (Subst, [Id])
- deShadowBinds :: CoreProgram -> CoreProgram
- delBndr :: Subst -> Var -> Subst
- delBndrs :: Subst -> [Var] -> Subst
- emptySubst :: Subst
- extendIdSubst :: Subst -> Id -> CoreExpr -> Subst
- extendIdSubstList :: Subst -> [(Id, CoreExpr)] -> Subst
- extendInScope :: Subst -> Var -> Subst
- extendInScopeIds :: Subst -> [Id] -> Subst
- extendInScopeList :: Subst -> [Var] -> Subst
- extendSubst :: Subst -> Var -> CoreArg -> Subst
- extendSubstList :: Subst -> [(Var, CoreArg)] -> Subst
- extendSubstWithVar :: Subst -> Var -> Var -> Subst
- extendTvSubst :: Subst -> TyVar -> Type -> Subst
- extendTvSubstList :: Subst -> [(TyVar, Type)] -> Subst
- getTCvSubst :: Subst -> TCvSubst
- isEmptySubst :: Subst -> Bool
- isInScope :: Var -> Subst -> Bool
- lookupIdSubst :: HasDebugCallStack => Subst -> Id -> CoreExpr
- lookupTCvSubst :: Subst -> TyVar -> Type
- mkEmptySubst :: InScopeSet -> Subst
- mkOpenSubst :: InScopeSet -> [(Var, CoreArg)] -> Subst
- mkSubst :: InScopeSet -> TvSubstEnv -> CvSubstEnv -> IdSubstEnv -> Subst
- setInScope :: Subst -> InScopeSet -> Subst
- substBind :: HasDebugCallStack => Subst -> CoreBind -> (Subst, CoreBind)
- substBindSC :: HasDebugCallStack => Subst -> CoreBind -> (Subst, CoreBind)
- substBndr :: Subst -> Var -> (Subst, Var)
- substBndrs :: Subst -> [Var] -> (Subst, [Var])
- substCo :: HasCallStack => Subst -> Coercion -> Coercion
- substDVarSet :: Subst -> DVarSet -> DVarSet
- substExpr :: HasDebugCallStack => Subst -> CoreExpr -> CoreExpr
- substExprSC :: HasDebugCallStack => Subst -> CoreExpr -> CoreExpr
- substIdInfo :: Subst -> Id -> IdInfo -> Maybe IdInfo
- substIdOcc :: Subst -> Id -> Id
- substIdType :: Subst -> Id -> Id
- substInScope :: Subst -> InScopeSet
- substRecBndrs :: Subst -> [Id] -> (Subst, [Id])
- substRulesForImportedIds :: Subst -> [CoreRule] -> [CoreRule]
- substSpec :: Subst -> Id -> RuleInfo -> RuleInfo
- substTickish :: Subst -> CoreTickish -> CoreTickish
- substTy :: Subst -> Type -> Type
- substUnfolding :: Subst -> Unfolding -> Unfolding
- substUnfoldingSC :: Subst -> Unfolding -> Unfolding
- zapSubstEnv :: Subst -> Subst
- type IdSubstEnv = IdEnv CoreExpr
- data Subst = Subst InScopeSet IdSubstEnv TvSubstEnv CvSubstEnv
- liftedTypeKind :: Kind
- unliftedTypeKind :: Kind
- unrestrictedFunTyCon :: TyCon
- funTyCon :: TyCon
- anyFreeVarsOfType :: (TyCoVar -> Bool) -> Type -> Bool
- anyFreeVarsOfTypes :: (TyCoVar -> Bool) -> [Type] -> Bool
- closeOverKinds :: TyCoVarSet -> TyCoVarSet
- closeOverKindsDSet :: DTyVarSet -> DTyVarSet
- closeOverKindsList :: [TyVar] -> [TyVar]
- coVarsOfType :: Type -> CoVarSet
- coVarsOfTypes :: [Type] -> CoVarSet
- noFreeVarsOfType :: Type -> Bool
- scopedSort :: [TyCoVar] -> [TyCoVar]
- tyCoFVsBndr :: TyCoVarBinder -> FV -> FV
- tyCoFVsOfType :: Type -> FV
- tyCoFVsVarBndr :: Var -> FV -> FV
- tyCoFVsVarBndrs :: [Var] -> FV -> FV
- tyCoVarsOfType :: Type -> TyCoVarSet
- tyCoVarsOfTypeDSet :: Type -> DTyCoVarSet
- tyCoVarsOfTypeWellScoped :: Type -> [TyVar]
- tyCoVarsOfTypes :: [Type] -> TyCoVarSet
- tyCoVarsOfTypesWellScoped :: [Type] -> [TyVar]
- foldTyCo :: Monoid a => TyCoFolder env a -> env -> (Type -> a, [Type] -> a, Coercion -> a, [Coercion] -> a)
- isInvisibleBinder :: TyCoBinder -> Bool
- isNamedBinder :: TyCoBinder -> Bool
- isVisibleBinder :: TyCoBinder -> Bool
- mkForAllTy :: TyCoVar -> ArgFlag -> Type -> Type
- mkForAllTys :: [TyCoVarBinder] -> Type -> Type
- mkFunTy :: AnonArgFlag -> Mult -> Type -> Type -> Type
- mkInvisForAllTys :: [InvisTVBinder] -> Type -> Type
- mkInvisFunTy :: Mult -> Type -> Type -> Type
- mkInvisFunTyMany :: Type -> Type -> Type
- mkInvisFunTysMany :: [Type] -> Type -> Type
- mkPiTy :: TyCoBinder -> Type -> Type
- mkPiTys :: [TyCoBinder] -> Type -> Type
- mkTyVarTy :: TyVar -> Type
- mkTyVarTys :: [TyVar] -> [Type]
- mkVisFunTy :: Mult -> Type -> Type -> Type
- mkVisFunTyMany :: Type -> Type -> Type
- mkVisFunTys :: [Scaled Type] -> Type -> Type
- mkVisFunTysMany :: [Type] -> Type -> Type
- typeSize :: Type -> Int
- cloneTyVarBndr :: TCvSubst -> TyVar -> Unique -> (TCvSubst, TyVar)
- cloneTyVarBndrs :: TCvSubst -> [TyVar] -> UniqSupply -> (TCvSubst, [TyVar])
- composeTCvSubst :: TCvSubst -> TCvSubst -> TCvSubst
- composeTCvSubstEnv :: InScopeSet -> (TvSubstEnv, CvSubstEnv) -> (TvSubstEnv, CvSubstEnv) -> (TvSubstEnv, CvSubstEnv)
- emptyTCvSubst :: TCvSubst
- emptyTvSubstEnv :: TvSubstEnv
- extendCvSubst :: TCvSubst -> CoVar -> Coercion -> TCvSubst
- extendTCvInScope :: TCvSubst -> Var -> TCvSubst
- extendTCvInScopeList :: TCvSubst -> [Var] -> TCvSubst
- extendTCvInScopeSet :: TCvSubst -> VarSet -> TCvSubst
- extendTCvSubst :: TCvSubst -> TyCoVar -> Type -> TCvSubst
- extendTCvSubstList :: TCvSubst -> [Var] -> [Type] -> TCvSubst
- extendTCvSubstWithClone :: TCvSubst -> TyCoVar -> TyCoVar -> TCvSubst
- extendTvSubstAndInScope :: TCvSubst -> TyVar -> Type -> TCvSubst
- extendTvSubstBinderAndInScope :: TCvSubst -> TyCoBinder -> Type -> TCvSubst
- extendTvSubstWithClone :: TCvSubst -> TyVar -> TyVar -> TCvSubst
- getTCvInScope :: TCvSubst -> InScopeSet
- getTCvSubstRangeFVs :: TCvSubst -> VarSet
- getTvSubstEnv :: TCvSubst -> TvSubstEnv
- isEmptyTCvSubst :: TCvSubst -> Bool
- lookupTyVar :: TCvSubst -> TyVar -> Maybe Type
- mkEmptyTCvSubst :: InScopeSet -> TCvSubst
- mkTCvSubst :: InScopeSet -> (TvSubstEnv, CvSubstEnv) -> TCvSubst
- mkTvSubstPrs :: [(TyVar, Type)] -> TCvSubst
- notElemTCvSubst :: Var -> TCvSubst -> Bool
- setTvSubstEnv :: TCvSubst -> TvSubstEnv -> TCvSubst
- substCoUnchecked :: TCvSubst -> Coercion -> Coercion
- substCoWithUnchecked :: [TyVar] -> [Type] -> Coercion -> Coercion
- substScaledTy :: HasCallStack => TCvSubst -> Scaled Type -> Scaled Type
- substScaledTyUnchecked :: HasCallStack => TCvSubst -> Scaled Type -> Scaled Type
- substScaledTys :: HasCallStack => TCvSubst -> [Scaled Type] -> [Scaled Type]
- substScaledTysUnchecked :: TCvSubst -> [Scaled Type] -> [Scaled Type]
- substTheta :: HasCallStack => TCvSubst -> ThetaType -> ThetaType
- substThetaUnchecked :: TCvSubst -> ThetaType -> ThetaType
- substTyAddInScope :: TCvSubst -> Type -> Type
- substTyCoBndr :: TCvSubst -> TyCoBinder -> (TCvSubst, TyCoBinder)
- substTyUnchecked :: TCvSubst -> Type -> Type
- substTyVar :: TCvSubst -> TyVar -> Type
- substTyVarBndr :: HasCallStack => TCvSubst -> TyVar -> (TCvSubst, TyVar)
- substTyVarBndrs :: HasCallStack => TCvSubst -> [TyVar] -> (TCvSubst, [TyVar])
- substTyVars :: TCvSubst -> [TyVar] -> [Type]
- substTyWith :: HasCallStack => [TyVar] -> [Type] -> Type -> Type
- substTyWithUnchecked :: [TyVar] -> [Type] -> Type -> Type
- substTys :: HasCallStack => TCvSubst -> [Type] -> [Type]
- substTysUnchecked :: TCvSubst -> [Type] -> [Type]
- substTysWith :: [TyVar] -> [Type] -> [Type] -> [Type]
- substVarBndr :: HasCallStack => TCvSubst -> TyCoVar -> (TCvSubst, TyCoVar)
- substVarBndrs :: HasCallStack => TCvSubst -> [TyCoVar] -> (TCvSubst, [TyCoVar])
- unionTCvSubst :: TCvSubst -> TCvSubst -> TCvSubst
- zapTCvSubst :: TCvSubst -> TCvSubst
- zipCoEnv :: HasDebugCallStack => [CoVar] -> [Coercion] -> CvSubstEnv
- zipTCvSubst :: HasDebugCallStack => [TyCoVar] -> [Type] -> TCvSubst
- zipTvSubst :: HasDebugCallStack => [TyVar] -> [Type] -> TCvSubst
- zipTyEnv :: HasDebugCallStack => [TyVar] -> [Type] -> TvSubstEnv
- tidyFreeTyCoVars :: TidyEnv -> [TyCoVar] -> TidyEnv
- tidyKind :: TidyEnv -> Kind -> Kind
- tidyOpenKind :: TidyEnv -> Kind -> (TidyEnv, Kind)
- tidyOpenTyCoVar :: TidyEnv -> TyCoVar -> (TidyEnv, TyCoVar)
- tidyOpenTyCoVars :: TidyEnv -> [TyCoVar] -> (TidyEnv, [TyCoVar])
- tidyOpenType :: TidyEnv -> Type -> (TidyEnv, Type)
- tidyOpenTypes :: TidyEnv -> [Type] -> (TidyEnv, [Type])
- tidyTopType :: Type -> Type
- tidyTyCoVarBinder :: TidyEnv -> VarBndr TyCoVar vis -> (TidyEnv, VarBndr TyCoVar vis)
- tidyTyCoVarBinders :: TidyEnv -> [VarBndr TyCoVar vis] -> (TidyEnv, [VarBndr TyCoVar vis])
- tidyTyCoVarOcc :: TidyEnv -> TyCoVar -> TyCoVar
- tidyType :: TidyEnv -> Type -> Type
- tidyTypes :: TidyEnv -> [Type] -> [Type]
- tidyVarBndr :: TidyEnv -> TyCoVar -> (TidyEnv, TyCoVar)
- tidyVarBndrs :: TidyEnv -> [TyCoVar] -> (TidyEnv, [TyCoVar])
- isConstraintKindCon :: TyCon -> Bool
- pattern Many :: Mult
- pattern One :: Mult
- appTyArgFlags :: Type -> [Type] -> [ArgFlag]
- applyTysX :: [TyVar] -> Type -> [Type] -> Type
- binderRelevantType_maybe :: TyCoBinder -> Maybe Type
- buildSynTyCon :: Name -> [KnotTied TyConBinder] -> Kind -> [Role] -> KnotTied Type -> TyCon
- classifiesTypeWithValues :: Kind -> Bool
- coAxNthLHS :: forall (br :: BranchFlag). CoAxiom br -> Int -> Type
- coreView :: Type -> Maybe Type
- dropForAlls :: Type -> Type
- dropRuntimeRepArgs :: [Type] -> [Type]
- eqType :: Type -> Type -> Bool
- eqTypeX :: RnEnv2 -> Type -> Type -> Bool
- eqTypes :: [Type] -> [Type] -> Bool
- eqVarBndrs :: RnEnv2 -> [Var] -> [Var] -> Maybe RnEnv2
- expandTypeSynonyms :: Type -> Type
- filterOutInferredTypes :: TyCon -> [Type] -> [Type]
- filterOutInvisibleTypes :: TyCon -> [Type] -> [Type]
- funArgTy :: Type -> Type
- funResultTy :: Type -> Type
- getCastedTyVar_maybe :: Type -> Maybe (TyVar, CoercionN)
- getRuntimeRep :: HasDebugCallStack => Type -> Type
- getRuntimeRep_maybe :: HasDebugCallStack => Type -> Maybe Type
- getTyVar :: String -> Type -> TyVar
- getTyVar_maybe :: Type -> Maybe TyVar
- invisibleTyBndrCount :: Type -> Int
- irrelevantMult :: Scaled a -> a
- isAlgType :: Type -> Bool
- isAnonTyCoBinder :: TyCoBinder -> Bool
- isAtomicTy :: Type -> Bool
- isBoxedRuntimeRep :: Type -> Bool
- isBoxedType :: Type -> Bool
- isBoxedTypeKind :: Kind -> Bool
- isCharLitTy :: Type -> Maybe Char
- isCoVarType :: Type -> Bool
- isCoercionTy :: Type -> Bool
- isCoercionTy_maybe :: Type -> Maybe Coercion
- isDataFamilyAppType :: Type -> Bool
- isFamFreeTy :: Type -> Bool
- isForAllTy :: Type -> Bool
- isForAllTy_co :: Type -> Bool
- isForAllTy_ty :: Type -> Bool
- isFunTy :: Type -> Bool
- isKindLevPoly :: Kind -> Bool
- isLevityTy :: Type -> Bool
- isLevityVar :: TyVar -> Bool
- isLiftedLevity :: Type -> Bool
- isLiftedRuntimeRep :: Type -> Bool
- isLiftedTypeKind :: Kind -> Bool
- isLiftedType_maybe :: HasDebugCallStack => Type -> Maybe Bool
- isLinearType :: Type -> Bool
- isLitTy :: Type -> Maybe TyLit
- isManyDataConTy :: Mult -> Bool
- isMultiplicityTy :: Type -> Bool
- isMultiplicityVar :: TyVar -> Bool
- isNumLitTy :: Type -> Maybe Integer
- isOneDataConTy :: Mult -> Bool
- isPiTy :: Type -> Bool
- isPredTy :: HasDebugCallStack => Type -> Bool
- isPrimitiveType :: Type -> Bool
- isRuntimeRepKindedTy :: Type -> Bool
- isRuntimeRepTy :: Type -> Bool
- isRuntimeRepVar :: TyVar -> Bool
- isStrLitTy :: Type -> Maybe FastString
- isStrictType :: HasDebugCallStack => Type -> Bool
- isTauTy :: Type -> Bool
- isTyVarTy :: Type -> Bool
- isTypeLevPoly :: Type -> Bool
- isUnboxedSumType :: Type -> Bool
- isUnboxedTupleType :: Type -> Bool
- isUnliftedLevity :: Type -> Bool
- isUnliftedRuntimeRep :: Type -> Bool
- isUnliftedType :: HasDebugCallStack => Type -> Bool
- isUnliftedTypeKind :: Kind -> Bool
- isValidJoinPointType :: JoinArity -> Type -> Bool
- kindRep :: HasDebugCallStack => Kind -> Type
- kindRep_maybe :: HasDebugCallStack => Kind -> Maybe Type
- linear :: a -> Scaled a
- mapTyCo :: Monad m => TyCoMapper () m -> (Type -> m Type, [Type] -> m [Type], Coercion -> m Coercion, [Coercion] -> m [Coercion])
- mapTyCoX :: Monad m => TyCoMapper env m -> (env -> Type -> m Type, env -> [Type] -> m [Type], env -> Coercion -> m Coercion, env -> [Coercion] -> m [Coercion])
- mightBeUnliftedType :: Type -> Bool
- mkAnonBinder :: AnonArgFlag -> Scaled Type -> TyCoBinder
- mkAppTy :: Type -> Type -> Type
- mkAppTys :: Type -> [Type] -> Type
- mkCastTy :: Type -> Coercion -> Type
- mkCharLitTy :: Char -> Type
- mkCoercionTy :: Coercion -> Type
- mkFamilyTyConApp :: TyCon -> [Type] -> Type
- mkInfForAllTy :: TyVar -> Type -> Type
- mkInfForAllTys :: [TyVar] -> Type -> Type
- mkNumLitTy :: Integer -> Type
- mkScaled :: Mult -> a -> Scaled a
- mkSpecForAllTy :: TyVar -> Type -> Type
- mkSpecForAllTys :: [TyVar] -> Type -> Type
- mkStrLitTy :: FastString -> Type
- mkTyCoInvForAllTy :: TyCoVar -> Type -> Type
- mkTyCoInvForAllTys :: [TyCoVar] -> Type -> Type
- mkTyConApp :: TyCon -> [Type] -> Type
- mkTyConBindersPreferAnon :: [TyVar] -> TyCoVarSet -> [TyConBinder]
- mkTyConTy :: TyCon -> Type
- mkVisForAllTys :: [TyVar] -> Type -> Type
- newTyConInstRhs :: TyCon -> [Type] -> Type
- nonDetCmpTc :: TyCon -> TyCon -> Ordering
- nonDetCmpType :: Type -> Type -> Ordering
- nonDetCmpTypeX :: RnEnv2 -> Type -> Type -> Ordering
- nonDetCmpTypes :: [Type] -> [Type] -> Ordering
- nonDetCmpTypesX :: RnEnv2 -> [Type] -> [Type] -> Ordering
- occCheckExpand :: [Var] -> Type -> Maybe Type
- partitionInvisibleTypes :: TyCon -> [Type] -> ([Type], [Type])
- partitionInvisibles :: [(a, ArgFlag)] -> ([a], [a])
- piResultTy :: HasDebugCallStack => Type -> Type -> Type
- piResultTys :: HasDebugCallStack => Type -> [Type] -> Type
- pickyIsLiftedTypeKind :: Kind -> Bool
- pprUserTypeErrorTy :: Type -> SDoc
- repGetTyVar_maybe :: Type -> Maybe TyVar
- repSplitAppTy_maybe :: HasDebugCallStack => Type -> Maybe (Type, Type)
- repSplitAppTys :: HasDebugCallStack => Type -> (Type, [Type])
- repSplitTyConApp_maybe :: HasDebugCallStack => Type -> Maybe (TyCon, [Type])
- resultIsLevPoly :: Type -> Bool
- scaledSet :: Scaled a -> b -> Scaled b
- seqType :: Type -> ()
- seqTypes :: [Type] -> ()
- splitAppTy :: Type -> (Type, Type)
- splitAppTy_maybe :: Type -> Maybe (Type, Type)
- splitAppTys :: Type -> (Type, [Type])
- splitCastTy_maybe :: Type -> Maybe (Type, Coercion)
- splitForAllCoVar_maybe :: Type -> Maybe (TyCoVar, Type)
- splitForAllInvisTVBinders :: Type -> ([InvisTVBinder], Type)
- splitForAllReqTVBinders :: Type -> ([ReqTVBinder], Type)
- splitForAllTyCoVar :: Type -> (TyCoVar, Type)
- splitForAllTyCoVarBinders :: Type -> ([TyCoVarBinder], Type)
- splitForAllTyCoVar_maybe :: Type -> Maybe (TyCoVar, Type)
- splitForAllTyCoVars :: Type -> ([TyCoVar], Type)
- splitForAllTyVar_maybe :: Type -> Maybe (TyCoVar, Type)
- splitFunTy :: Type -> (Mult, Type, Type)
- splitFunTy_maybe :: Type -> Maybe (Mult, Type, Type)
- splitFunTys :: Type -> ([Scaled Type], Type)
- splitInvisPiTys :: Type -> ([TyCoBinder], Type)
- splitInvisPiTysN :: Int -> Type -> ([TyCoBinder], Type)
- splitListTyConApp_maybe :: Type -> Maybe Type
- splitPiTy :: Type -> (TyCoBinder, Type)
- splitPiTy_maybe :: Type -> Maybe (TyCoBinder, Type)
- splitPiTys :: Type -> ([TyCoBinder], Type)
- splitTyConApp :: Type -> (TyCon, [Type])
- splitTyConApp_maybe :: HasDebugCallStack => Type -> Maybe (TyCon, [Type])
- splitVisVarsOfType :: Type -> Pair TyCoVarSet
- splitVisVarsOfTypes :: [Type] -> Pair TyCoVarSet
- stripCoercionTy :: Type -> Coercion
- tYPE :: Type -> Type
- tcIsBoxedTypeKind :: Kind -> Bool
- tcIsConstraintKind :: Kind -> Bool
- tcIsLiftedTypeKind :: Kind -> Bool
- tcIsRuntimeTypeKind :: Kind -> Bool
- tcRepSplitAppTy_maybe :: Type -> Maybe (Type, Type)
- tcReturnsConstraintKind :: Kind -> Bool
- tcSplitTyConApp_maybe :: HasCallStack => Type -> Maybe (TyCon, [Type])
- tcTypeKind :: HasDebugCallStack => Type -> Kind
- tcView :: Type -> Maybe Type
- tyBinderType :: TyBinder -> Type
- tyCoBinderType :: TyCoBinder -> Type
- tyCoBinderVar_maybe :: TyCoBinder -> Maybe TyCoVar
- tyConAppArgN :: Int -> Type -> Type
- tyConAppArgs :: Type -> [Type]
- tyConAppArgs_maybe :: Type -> Maybe [Type]
- tyConAppNeedsKindSig :: Bool -> TyCon -> Int -> Bool
- tyConAppTyCon :: Type -> TyCon
- tyConAppTyConPicky_maybe :: Type -> Maybe TyCon
- tyConAppTyCon_maybe :: Type -> Maybe TyCon
- tyConArgFlags :: TyCon -> [Type] -> [ArgFlag]
- tyConBindersTyCoBinders :: [TyConBinder] -> [TyCoBinder]
- tyConsOfType :: Type -> UniqSet TyCon
- tymult :: a -> Scaled a
- typeKind :: HasDebugCallStack => Type -> Kind
- unrestricted :: a -> Scaled a
- userTypeError_maybe :: Type -> Maybe Type
- binderArgFlag :: VarBndr tv argf -> argf
- binderType :: VarBndr TyCoVar argf -> Type
- binderVar :: VarBndr tv argf -> tv
- binderVars :: [VarBndr tv argf] -> [tv]
- isInvisibleArgFlag :: ArgFlag -> Bool
- isTyVar :: Var -> Bool
- isVisibleArgFlag :: ArgFlag -> Bool
- mkTyCoVarBinder :: vis -> TyCoVar -> VarBndr TyCoVar vis
- mkTyCoVarBinders :: vis -> [TyCoVar] -> [VarBndr TyCoVar vis]
- mkTyVarBinder :: vis -> TyVar -> VarBndr TyVar vis
- mkTyVarBinders :: vis -> [TyVar] -> [VarBndr TyVar vis]
- sameVis :: ArgFlag -> ArgFlag -> Bool
- tyVarKind :: TyVar -> Kind
- tyVarSpecToBinders :: [VarBndr a Specificity] -> [VarBndr a ArgFlag]
- type Kind = Type
- type KindOrType = Type
- type KnotTied ty = ty
- type Mult = Type
- type PredType = Type
- data Scaled a
- type ThetaType = [PredType]
- data TyCoBinder
- data TyCoFolder env a = TyCoFolder {}
- data Type
- data TCvSubst = TCvSubst InScopeSet TvSubstEnv CvSubstEnv
- type TvSubstEnv = TyVarEnv Type
- data TyCoMapper env (m :: Type -> Type) = TyCoMapper {}
- data AnonArgFlag
- data ArgFlag where
- data Specificity
- type TyCoVar = Id
- type TyCoVarBinder = VarBndr TyCoVar ArgFlag
- type TyVar = Var
- type TyVarBinder = VarBndr TyVar ArgFlag
- data Var
- pickLR :: LeftOrRight -> (a, a) -> a
- data LeftOrRight
- extendTvSubstAndInScope :: TCvSubst -> TyVar -> Type -> TCvSubst
- type TyCoVar = Id
- data Var
- type CoVar = Id
- data Coercion
- data CoercionHole = CoercionHole {}
- data Role
- type CoercionN = Coercion
- buildCoercion :: Type -> Type -> CoercionN
- castCoercionKind :: Coercion -> CoercionN -> CoercionN -> Coercion
- castCoercionKind1 :: Coercion -> Role -> Type -> Type -> CoercionN -> Coercion
- castCoercionKind2 :: Coercion -> Role -> Type -> Type -> CoercionN -> CoercionN -> Coercion
- coToMCo :: Coercion -> MCoercion
- coVarKind :: CoVar -> Type
- coVarKindsTypesRole :: HasDebugCallStack => CoVar -> (Kind, Kind, Type, Type, Role)
- coVarName :: CoVar -> Name
- coVarRole :: CoVar -> Role
- coVarTypes :: HasDebugCallStack => CoVar -> Pair Type
- coercionHolesOfCo :: Coercion -> UniqSet CoercionHole
- coercionHolesOfType :: Type -> UniqSet CoercionHole
- coercionKind :: Coercion -> Pair Type
- coercionKindRole :: Coercion -> (Pair Type, Role)
- coercionKinds :: [Coercion] -> Pair [Type]
- coercionLKind :: Coercion -> Type
- coercionRKind :: Coercion -> Type
- coercionRole :: Coercion -> Role
- coercionType :: Coercion -> Type
- composeSteppers :: NormaliseStepper ev -> NormaliseStepper ev -> NormaliseStepper ev
- decomposeCo :: Arity -> Coercion -> [Role] -> [Coercion]
- decomposeFunCo :: HasDebugCallStack => Role -> Coercion -> (CoercionN, Coercion, Coercion)
- decomposePiCos :: HasDebugCallStack => CoercionN -> Pair Type -> [Type] -> ([CoercionN], CoercionN)
- downgradeRole :: Role -> Role -> Coercion -> Coercion
- emptyLiftingContext :: InScopeSet -> LiftingContext
- eqCoercion :: Coercion -> Coercion -> Bool
- eqCoercionX :: RnEnv2 -> Coercion -> Coercion -> Bool
- etaExpandCoAxBranch :: CoAxBranch -> ([TyVar], [Type], Type)
- extendLiftingContext :: LiftingContext -> TyCoVar -> Coercion -> LiftingContext
- extendLiftingContextAndInScope :: LiftingContext -> TyCoVar -> Coercion -> LiftingContext
- getCoVar_maybe :: Coercion -> Maybe CoVar
- hasCoercionHoleCo :: Coercion -> Bool
- hasCoercionHoleTy :: Type -> Bool
- instNewTyCon_maybe :: TyCon -> [Type] -> Maybe (Type, Coercion)
- isCoVar_maybe :: Coercion -> Maybe CoVar
- isGReflCo :: Coercion -> Bool
- isGReflCo_maybe :: Coercion -> Maybe (Type, Role)
- isGReflMCo :: MCoercion -> Bool
- isMappedByLC :: TyCoVar -> LiftingContext -> Bool
- isReflCo :: Coercion -> Bool
- isReflCoVar_maybe :: Var -> Maybe Coercion
- isReflCo_maybe :: Coercion -> Maybe (Type, Role)
- isReflMCo :: MCoercion -> Bool
- isReflexiveCo :: Coercion -> Bool
- isReflexiveCo_maybe :: Coercion -> Maybe (Type, Role)
- lcInScopeSet :: LiftingContext -> InScopeSet
- lcSubstLeft :: LiftingContext -> TCvSubst
- lcSubstRight :: LiftingContext -> TCvSubst
- lcTCvSubst :: LiftingContext -> TCvSubst
- liftCoSubst :: HasDebugCallStack => Role -> LiftingContext -> Type -> Coercion
- liftCoSubstTyVar :: LiftingContext -> Role -> TyVar -> Maybe Coercion
- liftCoSubstVarBndrUsing :: (LiftingContext -> Type -> (CoercionN, a)) -> LiftingContext -> TyCoVar -> (LiftingContext, TyCoVar, CoercionN, a)
- liftCoSubstWith :: Role -> [TyCoVar] -> [Coercion] -> Type -> Coercion
- liftCoSubstWithEx :: Role -> [TyVar] -> [Coercion] -> [TyCoVar] -> [Type] -> (Type -> Coercion, [Type])
- liftEnvSubstLeft :: TCvSubst -> LiftCoEnv -> TCvSubst
- liftEnvSubstRight :: TCvSubst -> LiftCoEnv -> TCvSubst
- ltRole :: Role -> Role -> Bool
- mapStepResult :: (ev1 -> ev2) -> NormaliseStepResult ev1 -> NormaliseStepResult ev2
- mkAppCo :: Coercion -> Coercion -> Coercion
- mkAppCos :: Coercion -> [Coercion] -> Coercion
- mkAxInstCo :: forall (br :: BranchFlag). Role -> CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Coercion
- mkAxInstLHS :: forall (br :: BranchFlag). CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Type
- mkAxInstRHS :: forall (br :: BranchFlag). CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Type
- mkAxiomInstCo :: CoAxiom Branched -> BranchIndex -> [Coercion] -> Coercion
- mkAxiomRuleCo :: CoAxiomRule -> [Coercion] -> Coercion
- mkCastTyMCo :: Type -> MCoercion -> Type
- mkCoCast :: Coercion -> CoercionR -> Coercion
- mkCoVarCo :: CoVar -> Coercion
- mkCoVarCos :: [CoVar] -> [Coercion]
- mkCoercionType :: Role -> Type -> Type -> Type
- mkCoherenceLeftCo :: Role -> Type -> CoercionN -> Coercion -> Coercion
- mkCoherenceRightCo :: Role -> Type -> CoercionN -> Coercion -> Coercion
- mkCoherenceRightMCo :: Role -> Type -> MCoercionN -> Coercion -> Coercion
- mkFamilyTyConAppCo :: TyCon -> [CoercionN] -> CoercionN
- mkForAllCo :: TyCoVar -> CoercionN -> Coercion -> Coercion
- mkForAllCos :: [(TyCoVar, CoercionN)] -> Coercion -> Coercion
- mkFunCo :: Role -> CoercionN -> Coercion -> Coercion -> Coercion
- mkGReflCo :: Role -> Type -> MCoercionN -> Coercion
- mkGReflLeftCo :: Role -> Type -> CoercionN -> Coercion
- mkGReflLeftMCo :: Role -> Type -> MCoercionN -> Coercion
- mkGReflRightCo :: Role -> Type -> CoercionN -> Coercion
- mkGReflRightMCo :: Role -> Type -> MCoercionN -> Coercion
- mkHeteroCoercionType :: Role -> Kind -> Kind -> Type -> Type -> Type
- mkHeteroPrimEqPred :: Kind -> Kind -> Type -> Type -> Type
- mkHeteroReprPrimEqPred :: Kind -> Kind -> Type -> Type -> Type
- mkHoleCo :: CoercionHole -> Coercion
- mkHomoForAllCos :: [TyCoVar] -> Coercion -> Coercion
- mkInstCo :: Coercion -> Coercion -> Coercion
- mkKindCo :: Coercion -> Coercion
- mkLRCo :: LeftOrRight -> Coercion -> Coercion
- mkNomReflCo :: Type -> Coercion
- mkNthCo :: HasDebugCallStack => Role -> Int -> Coercion -> Coercion
- mkNthCoFunCo :: Int -> CoercionN -> Coercion -> Coercion -> Coercion
- mkPhantomCo :: Coercion -> Type -> Type -> Coercion
- mkPiCo :: Role -> Var -> Coercion -> Coercion
- mkPiCos :: Role -> [Var] -> Coercion -> Coercion
- mkPrimEqPred :: Type -> Type -> Type
- mkPrimEqPredRole :: Role -> Type -> Type -> PredType
- mkProofIrrelCo :: Role -> Coercion -> Coercion -> Coercion -> Coercion
- mkReflCo :: Role -> Type -> Coercion
- mkRepReflCo :: Type -> Coercion
- mkReprPrimEqPred :: Type -> Type -> Type
- mkSubCo :: HasDebugCallStack => Coercion -> Coercion
- mkSubstLiftingContext :: TCvSubst -> LiftingContext
- mkSymCo :: Coercion -> Coercion
- mkSymMCo :: MCoercion -> MCoercion
- mkTransCo :: Coercion -> Coercion -> Coercion
- mkTransMCo :: MCoercion -> MCoercion -> MCoercion
- mkTransMCoL :: MCoercion -> Coercion -> MCoercion
- mkTyConAppCo :: HasDebugCallStack => Role -> TyCon -> [Coercion] -> Coercion
- mkUnbranchedAxInstCo :: Role -> CoAxiom Unbranched -> [Type] -> [Coercion] -> Coercion
- mkUnbranchedAxInstLHS :: CoAxiom Unbranched -> [Type] -> [Coercion] -> Type
- mkUnbranchedAxInstRHS :: CoAxiom Unbranched -> [Type] -> [Coercion] -> Type
- mkUnivCo :: UnivCoProvenance -> Role -> Type -> Type -> Coercion
- multToCo :: Mult -> Coercion
- nthCoRole :: Int -> Coercion -> Role
- nthRole :: Role -> TyCon -> Int -> Role
- pprCoAxBranch :: TyCon -> CoAxBranch -> SDoc
- pprCoAxBranchLHS :: TyCon -> CoAxBranch -> SDoc
- pprCoAxBranchUser :: TyCon -> CoAxBranch -> SDoc
- pprCoAxiom :: forall (br :: BranchFlag). CoAxiom br -> SDoc
- promoteCoercion :: Coercion -> CoercionN
- seqCo :: Coercion -> ()
- setCoVarName :: CoVar -> Name -> CoVar
- setCoVarUnique :: CoVar -> Unique -> CoVar
- setNominalRole_maybe :: Role -> Coercion -> Maybe Coercion
- simplifyArgsWorker :: [TyCoBinder] -> Kind -> TyCoVarSet -> [Role] -> [(Type, Coercion)] -> ([Type], [Coercion], MCoercionN)
- splitAppCo_maybe :: Coercion -> Maybe (Coercion, Coercion)
- splitForAllCo_co_maybe :: Coercion -> Maybe (CoVar, Coercion, Coercion)
- splitForAllCo_maybe :: Coercion -> Maybe (TyCoVar, Coercion, Coercion)
- splitForAllCo_ty_maybe :: Coercion -> Maybe (TyVar, Coercion, Coercion)
- splitFunCo_maybe :: Coercion -> Maybe (Coercion, Coercion)
- splitTyConAppCo_maybe :: Coercion -> Maybe (TyCon, [Coercion])
- substForAllCoBndrUsingLC :: Bool -> (Coercion -> Coercion) -> LiftingContext -> TyCoVar -> Coercion -> (LiftingContext, TyCoVar, Coercion)
- substLeftCo :: LiftingContext -> Coercion -> Coercion
- substRightCo :: LiftingContext -> Coercion -> Coercion
- swapLiftCoEnv :: LiftCoEnv -> LiftCoEnv
- tidyCoAxBndrsForUser :: TidyEnv -> [Var] -> (TidyEnv, [Var])
- topNormaliseNewType_maybe :: Type -> Maybe (Coercion, Type)
- topNormaliseTypeX :: NormaliseStepper ev -> (ev -> ev -> ev) -> Type -> Maybe (ev, Type)
- tyConRolesRepresentational :: TyCon -> [Role]
- tyConRolesX :: Role -> TyCon -> [Role]
- unwrapNewTypeStepper :: NormaliseStepper Coercion
- zapLiftingContext :: LiftingContext -> LiftingContext
- anyFreeVarsOfCo :: (TyCoVar -> Bool) -> Coercion -> Bool
- coVarsOfCo :: Coercion -> CoVarSet
- tyCoFVsOfCo :: Coercion -> FV
- tyCoFVsOfCos :: [Coercion] -> FV
- tyCoVarsOfCo :: Coercion -> TyCoVarSet
- tyCoVarsOfCoDSet :: Coercion -> DTyCoVarSet
- tyCoVarsOfCos :: [Coercion] -> TyCoVarSet
- pprCo :: Coercion -> SDoc
- pprParendCo :: Coercion -> SDoc
- coHoleCoVar :: CoercionHole -> CoVar
- coercionSize :: Coercion -> Int
- setCoHoleCoVar :: CoercionHole -> CoVar -> CoercionHole
- emptyCvSubstEnv :: CvSubstEnv
- getCvSubstEnv :: TCvSubst -> CvSubstEnv
- lookupCoVar :: TCvSubst -> Var -> Maybe Coercion
- substCoVar :: TCvSubst -> CoVar -> Coercion
- substCoVarBndr :: HasCallStack => TCvSubst -> CoVar -> (TCvSubst, CoVar)
- substCoVars :: TCvSubst -> [CoVar] -> [Coercion]
- substCoWith :: HasCallStack => [TyVar] -> [Type] -> Coercion -> Coercion
- substCos :: HasCallStack => TCvSubst -> [Coercion] -> [Coercion]
- tidyCo :: TidyEnv -> Coercion -> Coercion
- tidyCos :: TidyEnv -> [Coercion] -> [Coercion]
- isCoVar :: Var -> Bool
- mkCoVar :: Name -> Type -> CoVar
- type HoleSet = UniqSet CoercionHole
- type LiftCoEnv = VarEnv Coercion
- data LiftingContext = LC TCvSubst LiftCoEnv
- data NormaliseStepResult ev
- type NormaliseStepper ev = RecTcChecker -> TyCon -> [Type] -> NormaliseStepResult ev
- type CoercionP = Coercion
- type CoercionR = Coercion
- data MCoercion
- type MCoercionN = MCoercion
- type MCoercionR = MCoercion
- data UnivCoProvenance
- type CvSubstEnv = CoVarEnv Coercion
- class Uniquable a where
- data Unique
- thNameToGhcName :: Name -> CoreM (Maybe Name)
Documentation
Instances
Eq OccName | |
Data OccName | |
Defined in GHC.Types.Name.Occurrence gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccName -> c OccName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OccName # toConstr :: OccName -> Constr # dataTypeOf :: OccName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OccName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OccName) # gmapT :: (forall b. Data b => b -> b) -> OccName -> OccName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQ :: (forall d. Data d => d -> u) -> OccName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # | |
Ord OccName | |
NFData OccName | |
Defined in GHC.Types.Name.Occurrence | |
Uniquable OccName | |
Defined in GHC.Types.Name.Occurrence | |
Binary OccName | |
Outputable OccName | |
Defined in GHC.Types.Name.Occurrence | |
HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
OutputableBndr OccName | |
Defined in GHC.Types.Name.Occurrence pprBndr :: BindingSite -> OccName -> SDoc pprPrefixOcc :: OccName -> SDoc pprInfixOcc :: OccName -> SDoc bndrIsJoin_maybe :: OccName -> Maybe Int |
emptyFsEnv :: FastStringEnv a #
extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a #
lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a #
mkFsEnv :: [(FastString, a)] -> FastStringEnv a #
avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv #
delFromOccEnv :: OccEnv a -> OccName -> OccEnv a #
delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a #
delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv #
demoteOccName :: OccName -> Maybe OccName #
elemOccEnv :: OccName -> OccEnv a -> Bool #
elemOccSet :: OccName -> OccSet -> Bool #
emptyOccEnv :: OccEnv a #
emptyOccSet :: OccSet #
extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a #
extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a #
extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b #
extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a #
extendOccSet :: OccSet -> OccName -> OccSet #
extendOccSetList :: OccSet -> [OccName] -> OccSet #
filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt #
foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b #
initTidyOccEnv :: [OccName] -> TidyOccEnv #
intersectOccSet :: OccSet -> OccSet -> OccSet #
isDataConNameSpace :: NameSpace -> Bool #
isDataSymOcc :: OccName -> Bool #
isDefaultMethodOcc :: OccName -> Bool #
isDerivedOccName :: OccName -> Bool #
isEmptyOccSet :: OccSet -> Bool #
isTcClsNameSpace :: NameSpace -> Bool #
isTvNameSpace :: NameSpace -> Bool #
isTypeableBindOcc :: OccName -> Bool #
isValNameSpace :: NameSpace -> Bool #
isVarNameSpace :: NameSpace -> Bool #
lookupOccEnv :: OccEnv a -> OccName -> Maybe a #
minusOccSet :: OccSet -> OccSet -> OccSet #
mkBuilderOcc :: OccName -> OccName #
mkClassDataConOcc :: OccName -> OccName #
mkClassOpAuxOcc :: OccName -> OccName #
mkClsOccFS :: FastString -> OccName #
mkCon2TagOcc :: OccName -> OccName #
mkDataCOcc :: OccName -> OccName #
mkDataConWorkerOcc :: OccName -> OccName #
mkDataConWrapperOcc :: OccName -> OccName #
mkDataOccFS :: FastString -> OccName #
mkDataTOcc :: OccName -> OccName #
mkDefaultMethodOcc :: OccName -> OccName #
mkEqPredCoOcc :: OccName -> OccName #
mkForeignExportOcc :: OccName -> OccName #
mkInstTyCoOcc :: OccName -> OccName #
mkInstTyTcOcc :: String -> OccSet -> OccName #
mkLocalOcc :: Unique -> OccName -> OccName #
mkMatcherOcc :: OccName -> OccName #
mkMaxTagOcc :: OccName -> OccName #
mkMethodOcc :: OccName -> OccName #
mkNewTyCoOcc :: OccName -> OccName #
mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a #
mkOccNameFS :: NameSpace -> FastString -> OccName #
mkRecFldSelOcc :: String -> OccName #
mkRepEqOcc :: OccName -> OccName #
mkSuperDictAuxOcc :: Int -> OccName -> OccName #
mkSuperDictSelOcc :: Int -> OccName -> OccName #
mkTag2ConOcc :: OccName -> OccName #
mkTyConRepOcc :: OccName -> OccName #
mkTyVarOcc :: String -> OccName #
mkTyVarOccFS :: FastString -> OccName #
mkVarOccFS :: FastString -> OccName #
mkWorkerOcc :: OccName -> OccName #
occEnvElts :: OccEnv a -> [a] #
occNameString :: OccName -> String #
parenSymOcc :: OccName -> SDoc -> SDoc #
plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a #
plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a #
pprNameSpace :: NameSpace -> SDoc #
pprNameSpaceBrief :: NameSpace -> SDoc #
pprNonVarNameSpace :: NameSpace -> SDoc #
pprOccName :: OccName -> SDoc #
promoteOccName :: OccName -> Maybe OccName #
setOccNameSpace :: NameSpace -> OccName -> OccName #
startsWithUnderscore :: OccName -> Bool #
tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName) #
unionManyOccSets :: [OccSet] -> OccSet #
unionOccSets :: OccSet -> OccSet -> OccSet #
unitOccEnv :: OccName -> a -> OccEnv a #
unitOccSet :: OccName -> OccSet #
type FastStringEnv a = UniqFM FastString a #
class HasOccName name where #
Instances
HasOccName RdrName | |
Defined in GHC.Types.Name.Reader | |
HasOccName Name | |
Defined in GHC.Types.Name | |
HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
HasOccName GreName | |
Defined in GHC.Types.Avail | |
HasOccName GlobalRdrElt | |
Defined in GHC.Types.Name.Reader | |
HasOccName FieldLabel | |
Defined in GHC.Types.FieldLabel | |
HasOccName Var | |
Defined in GHC.Types.Var | |
HasOccName IfaceDecl | |
Defined in GHC.Iface.Syntax | |
HasOccName TcBinder | |
Defined in GHC.Tc.Types | |
HasOccName HoleFitCandidate | |
Defined in GHC.Tc.Errors.Hole.FitTypes | |
HasOccName IfaceClassOp | |
Defined in GHC.Iface.Syntax | |
HasOccName IfaceConDecl | |
Defined in GHC.Iface.Syntax | |
HasOccName name => HasOccName (IEWrappedName name) | |
Defined in GHC.Hs.ImpExp |
Instances
Data a => Data (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccEnv a -> c (OccEnv a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (OccEnv a) # toConstr :: OccEnv a -> Constr # dataTypeOf :: OccEnv a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (OccEnv a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (OccEnv a)) # gmapT :: (forall b. Data b => b -> b) -> OccEnv a -> OccEnv a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQ :: (forall d. Data d => d -> u) -> OccEnv a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccEnv a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # | |
Outputable a => Outputable (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence |
type TidyOccEnv = UniqFM FastString Int #
Instances
Eq Name | |
Data Name | |
Defined in GHC.Types.Name gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name # dataTypeOf :: Name -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) # gmapT :: (forall b. Data b => b -> b) -> Name -> Name # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # | |
Ord Name | |
NFData Name | |
Defined in GHC.Types.Name | |
Uniquable Name | |
Defined in GHC.Types.Name | |
Binary Name | |
Outputable Name | |
Defined in GHC.Types.Name | |
NamedThing Name | |
Defined in GHC.Types.Name | |
HasOccName Name | |
Defined in GHC.Types.Name | |
OutputableBndr Name | |
Defined in GHC.Types.Name pprBndr :: BindingSite -> Name -> SDoc pprPrefixOcc :: Name -> SDoc pprInfixOcc :: Name -> SDoc bndrIsJoin_maybe :: Name -> Maybe Int | |
type Anno Name | |
Defined in GHC.Hs.Extension type Anno Name = SrcSpanAnnN | |
type Anno [LocatedN Name] | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Name) | |
Defined in GHC.Hs.Binds |
Instances
Eq OccName | |
Data OccName | |
Defined in GHC.Types.Name.Occurrence gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccName -> c OccName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OccName # toConstr :: OccName -> Constr # dataTypeOf :: OccName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OccName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OccName) # gmapT :: (forall b. Data b => b -> b) -> OccName -> OccName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r # gmapQ :: (forall d. Data d => d -> u) -> OccName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName # | |
Ord OccName | |
NFData OccName | |
Defined in GHC.Types.Name.Occurrence | |
Uniquable OccName | |
Defined in GHC.Types.Name.Occurrence | |
Binary OccName | |
Outputable OccName | |
Defined in GHC.Types.Name.Occurrence | |
HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
OutputableBndr OccName | |
Defined in GHC.Types.Name.Occurrence pprBndr :: BindingSite -> OccName -> SDoc pprPrefixOcc :: OccName -> SDoc pprInfixOcc :: OccName -> SDoc bndrIsJoin_maybe :: OccName -> Maybe Int |
emptyFsEnv :: FastStringEnv a #
extendFsEnv :: FastStringEnv a -> FastString -> a -> FastStringEnv a #
lookupFsEnv :: FastStringEnv a -> FastString -> Maybe a #
mkFsEnv :: [(FastString, a)] -> FastStringEnv a #
getOccFS :: NamedThing a => a -> FastString #
getOccString :: NamedThing a => a -> String #
getSrcLoc :: NamedThing a => a -> SrcLoc #
getSrcSpan :: NamedThing a => a -> SrcSpan #
isBuiltInSyntax :: Name -> Bool #
isDataConName :: Name -> Bool #
isDynLinkName :: Platform -> Module -> Name -> Bool #
isExternalName :: Name -> Bool #
isHoleName :: Name -> Bool #
isInternalName :: Name -> Bool #
isSystemName :: Name -> Bool #
isTyConName :: Name -> Bool #
isTyVarName :: Name -> Bool #
isWiredIn :: NamedThing thing => thing -> Bool #
isWiredInName :: Name -> Bool #
localiseName :: Name -> Name #
mkClonedInternalName :: Unique -> Name -> Name #
mkFCallName :: Unique -> String -> Name #
mkSysTvName :: Unique -> FastString -> Name #
mkSystemName :: Unique -> OccName -> Name #
mkSystemVarName :: Unique -> FastString -> Name #
mkWiredInName :: Module -> OccName -> Unique -> TyThing -> BuiltInSyntax -> Name #
nameIsFromExternalPackage :: HomeUnit -> Name -> Bool #
nameIsHomePackage :: Module -> Name -> Bool #
nameIsHomePackageImport :: Module -> Name -> Bool #
nameIsLocalOrFrom :: Module -> Name -> Bool #
nameModule :: HasDebugCallStack => Name -> Module #
nameModule_maybe :: Name -> Maybe Module #
nameNameSpace :: Name -> NameSpace #
nameOccName :: Name -> OccName #
nameSrcLoc :: Name -> SrcLoc #
nameSrcSpan :: Name -> SrcSpan #
nameStableString :: Name -> String #
nameUnique :: Name -> Unique #
pprDefinedAt :: Name -> SDoc #
pprInfixName :: (Outputable a, NamedThing a) => a -> SDoc #
pprModulePrefix :: PprStyle -> Module -> OccName -> SDoc #
pprNameDefnLoc :: Name -> SDoc #
pprNameUnqualified :: Name -> SDoc #
pprPrefixName :: NamedThing a => a -> SDoc #
setNameLoc :: Name -> SrcSpan -> Name #
setNameUnique :: Name -> Unique -> Name #
stableNameCmp :: Name -> Name -> Ordering #
tidyNameOcc :: Name -> OccName -> Name #
avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv #
delFromOccEnv :: OccEnv a -> OccName -> OccEnv a #
delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a #
delTidyOccEnvList :: TidyOccEnv -> [FastString] -> TidyOccEnv #
demoteOccName :: OccName -> Maybe OccName #
elemOccEnv :: OccName -> OccEnv a -> Bool #
elemOccSet :: OccName -> OccSet -> Bool #
emptyOccEnv :: OccEnv a #
emptyOccSet :: OccSet #
extendOccEnv :: OccEnv a -> OccName -> a -> OccEnv a #
extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a #
extendOccEnv_Acc :: (a -> b -> b) -> (a -> b) -> OccEnv b -> OccName -> a -> OccEnv b #
extendOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccName -> a -> OccEnv a #
extendOccSet :: OccSet -> OccName -> OccSet #
extendOccSetList :: OccSet -> [OccName] -> OccSet #
filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt #
foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b #
initTidyOccEnv :: [OccName] -> TidyOccEnv #
intersectOccSet :: OccSet -> OccSet -> OccSet #
isDataConNameSpace :: NameSpace -> Bool #
isDataSymOcc :: OccName -> Bool #
isDefaultMethodOcc :: OccName -> Bool #
isDerivedOccName :: OccName -> Bool #
isEmptyOccSet :: OccSet -> Bool #
isTcClsNameSpace :: NameSpace -> Bool #
isTvNameSpace :: NameSpace -> Bool #
isTypeableBindOcc :: OccName -> Bool #
isValNameSpace :: NameSpace -> Bool #
isVarNameSpace :: NameSpace -> Bool #
lookupOccEnv :: OccEnv a -> OccName -> Maybe a #
minusOccSet :: OccSet -> OccSet -> OccSet #
mkBuilderOcc :: OccName -> OccName #
mkClassDataConOcc :: OccName -> OccName #
mkClassOpAuxOcc :: OccName -> OccName #
mkClsOccFS :: FastString -> OccName #
mkCon2TagOcc :: OccName -> OccName #
mkDataCOcc :: OccName -> OccName #
mkDataConWorkerOcc :: OccName -> OccName #
mkDataConWrapperOcc :: OccName -> OccName #
mkDataOccFS :: FastString -> OccName #
mkDataTOcc :: OccName -> OccName #
mkDefaultMethodOcc :: OccName -> OccName #
mkEqPredCoOcc :: OccName -> OccName #
mkForeignExportOcc :: OccName -> OccName #
mkInstTyCoOcc :: OccName -> OccName #
mkInstTyTcOcc :: String -> OccSet -> OccName #
mkLocalOcc :: Unique -> OccName -> OccName #
mkMatcherOcc :: OccName -> OccName #
mkMaxTagOcc :: OccName -> OccName #
mkMethodOcc :: OccName -> OccName #
mkNewTyCoOcc :: OccName -> OccName #
mkOccEnv_C :: (a -> a -> a) -> [(OccName, a)] -> OccEnv a #
mkOccNameFS :: NameSpace -> FastString -> OccName #
mkRecFldSelOcc :: String -> OccName #
mkRepEqOcc :: OccName -> OccName #
mkSuperDictAuxOcc :: Int -> OccName -> OccName #
mkSuperDictSelOcc :: Int -> OccName -> OccName #
mkTag2ConOcc :: OccName -> OccName #
mkTyConRepOcc :: OccName -> OccName #
mkTyVarOcc :: String -> OccName #
mkTyVarOccFS :: FastString -> OccName #
mkVarOccFS :: FastString -> OccName #
mkWorkerOcc :: OccName -> OccName #
occEnvElts :: OccEnv a -> [a] #
occNameString :: OccName -> String #
parenSymOcc :: OccName -> SDoc -> SDoc #
plusOccEnv :: OccEnv a -> OccEnv a -> OccEnv a #
plusOccEnv_C :: (a -> a -> a) -> OccEnv a -> OccEnv a -> OccEnv a #
pprNameSpace :: NameSpace -> SDoc #
pprNameSpaceBrief :: NameSpace -> SDoc #
pprNonVarNameSpace :: NameSpace -> SDoc #
pprOccName :: OccName -> SDoc #
promoteOccName :: OccName -> Maybe OccName #
setOccNameSpace :: NameSpace -> OccName -> OccName #
startsWithUnderscore :: OccName -> Bool #
tidyOccName :: TidyOccEnv -> OccName -> (TidyOccEnv, OccName) #
unionManyOccSets :: [OccSet] -> OccSet #
unionOccSets :: OccSet -> OccSet -> OccSet #
unitOccEnv :: OccName -> a -> OccEnv a #
unitOccSet :: OccName -> OccSet #
type FastStringEnv a = UniqFM FastString a #
class NamedThing a where #
Instances
NamedThing Name | |
Defined in GHC.Types.Name | |
NamedThing TyThing | |
Defined in GHC.Types.TyThing | |
NamedThing Var | |
Defined in GHC.Types.Var | |
NamedThing TyCon | |
Defined in GHC.Core.TyCon | |
NamedThing Class | |
Defined in GHC.Core.Class | |
NamedThing DataCon | |
Defined in GHC.Core.DataCon | |
NamedThing ConLike | |
Defined in GHC.Core.ConLike | |
NamedThing PatSyn | |
Defined in GHC.Core.PatSyn | |
NamedThing IfaceDecl | |
Defined in GHC.Iface.Syntax | |
NamedThing FamInst | |
Defined in GHC.Core.FamInstEnv | |
NamedThing ClsInst | |
Defined in GHC.Core.InstEnv | |
NamedThing HoleFitCandidate | |
Defined in GHC.Tc.Errors.Hole.FitTypes | |
NamedThing IfaceClassOp | |
Defined in GHC.Iface.Syntax | |
NamedThing IfaceConDecl | |
Defined in GHC.Iface.Syntax | |
NamedThing e => NamedThing (Located e) | |
Defined in GHC.Types.Name | |
NamedThing (CoAxiom br) | |
Defined in GHC.Core.Coercion.Axiom | |
NamedThing tv => NamedThing (VarBndr tv flag) | |
Defined in GHC.Types.Var | |
NamedThing (Located a) => NamedThing (LocatedAn an a) | |
Defined in GHC.Parser.Annotation |
class HasOccName name where #
Instances
HasOccName RdrName | |
Defined in GHC.Types.Name.Reader | |
HasOccName Name | |
Defined in GHC.Types.Name | |
HasOccName OccName | |
Defined in GHC.Types.Name.Occurrence | |
HasOccName GreName | |
Defined in GHC.Types.Avail | |
HasOccName GlobalRdrElt | |
Defined in GHC.Types.Name.Reader | |
HasOccName FieldLabel | |
Defined in GHC.Types.FieldLabel | |
HasOccName Var | |
Defined in GHC.Types.Var | |
HasOccName IfaceDecl | |
Defined in GHC.Iface.Syntax | |
HasOccName TcBinder | |
Defined in GHC.Tc.Types | |
HasOccName HoleFitCandidate | |
Defined in GHC.Tc.Errors.Hole.FitTypes | |
HasOccName IfaceClassOp | |
Defined in GHC.Iface.Syntax | |
HasOccName IfaceConDecl | |
Defined in GHC.Iface.Syntax | |
HasOccName name => HasOccName (IEWrappedName name) | |
Defined in GHC.Hs.ImpExp |
Instances
Data a => Data (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccEnv a -> c (OccEnv a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (OccEnv a) # toConstr :: OccEnv a -> Constr # dataTypeOf :: OccEnv a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (OccEnv a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (OccEnv a)) # gmapT :: (forall b. Data b => b -> b) -> OccEnv a -> OccEnv a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccEnv a -> r # gmapQ :: (forall d. Data d => d -> u) -> OccEnv a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> OccEnv a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccEnv a -> m (OccEnv a) # | |
Outputable a => Outputable (OccEnv a) | |
Defined in GHC.Types.Name.Occurrence |
type TidyOccEnv = UniqFM FastString Int #
Instances
Eq Var | |
Data Var | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |
Ord Var | |
Uniquable Var | |
Defined in GHC.Types.Var | |
Outputable Var | |
Defined in GHC.Types.Var | |
NamedThing Var | |
Defined in GHC.Types.Var | |
HasOccName Var | |
Defined in GHC.Types.Var | |
Eq (DeBruijn CoreExpr) Source # | |
Eq (DeBruijn CoreAlt) Source # | |
type Anno Id | |
Defined in GHC.Hs.Extension type Anno Id = SrcSpanAnnN | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds |
globaliseId :: Id -> Id #
isExportedId :: Var -> Bool #
isGlobalId :: Var -> Bool #
asJoinId_maybe :: Id -> Maybe JoinArity -> Id #
clearOneShotLambda :: Id -> Id #
hasNoBinding :: Id -> Bool #
idCallArity :: Id -> Arity #
idCoreRules :: Id -> [CoreRule] #
idDemandInfo :: Id -> Demand #
idFunRepArity :: Id -> RepArity #
idHasRules :: Id -> Bool #
idInlineActivation :: Id -> Activation #
idInlinePragma :: Id -> InlinePragma #
idJoinArity :: JoinId -> JoinArity #
idLFInfo_maybe :: Id -> Maybe LambdaFormInfo #
idOneShotInfo :: Id -> OneShotInfo #
idRuleMatchInfo :: Id -> RuleMatchInfo #
idScaledType :: Id -> Scaled Type #
idSpecialisation :: Id -> RuleInfo #
idStateHackOneShotInfo :: Id -> OneShotInfo #
idUnfolding :: Id -> Unfolding #
isClassOpId :: Id -> Bool #
isClassOpId_maybe :: Id -> Maybe Class #
isConLikeId :: Id -> Bool #
isDataConId_maybe :: Id -> Maybe DataCon #
isDataConRecordSelector :: Id -> Bool #
isDataConWorkId :: Id -> Bool #
isDataConWorkId_maybe :: Id -> Maybe DataCon #
isDataConWrapId :: Id -> Bool #
isDataConWrapId_maybe :: Id -> Maybe DataCon #
isDeadBinder :: Id -> Bool #
isDeadEndId :: Var -> Bool #
isFCallId_maybe :: Id -> Maybe ForeignCall #
isImplicitId :: Id -> Bool #
isJoinId_maybe :: Var -> Maybe JoinArity #
isNaughtyRecordSelector :: Id -> Bool #
isNeverLevPolyId :: Id -> Bool #
isOneShotBndr :: Var -> Bool #
isPatSynRecordSelector :: Id -> Bool #
isPrimOpId :: Id -> Bool #
isPrimOpId_maybe :: Id -> Maybe PrimOp #
isProbablyOneShotLambda :: Id -> Bool #
isRecordSelector :: Id -> Bool #
isStateHackType :: Type -> Bool #
isStrictId :: Id -> Bool #
localiseId :: Id -> Id #
maybeModifyIdInfo :: Maybe IdInfo -> Id -> Id #
mkExportedLocalId :: IdDetails -> Name -> Type -> Id #
mkExportedVanillaId :: Name -> Type -> Id #
mkGlobalId :: IdDetails -> Name -> Type -> IdInfo -> Id #
mkLocalCoVar :: Name -> Type -> CoVar #
mkSysLocalM :: MonadUnique m => FastString -> Mult -> Type -> m Id #
mkSysLocalOrCoVarM :: MonadUnique m => FastString -> Mult -> Type -> m Id #
mkTemplateLocal :: Int -> Type -> Id #
mkTemplateLocals :: [Type] -> [Id] #
mkTemplateLocalsNum :: Int -> [Type] -> [Id] #
mkVanillaGlobal :: Name -> Type -> Id #
mkVanillaGlobalWithInfo :: Name -> Type -> IdInfo -> Id #
modifyIdInfo :: HasDebugCallStack => (IdInfo -> IdInfo) -> Id -> Id #
modifyInlinePragma :: Id -> (InlinePragma -> InlinePragma) -> Id #
realIdUnfolding :: Id -> Unfolding #
recordSelectorTyCon :: Id -> RecSelParent #
recordSelectorTyCon_maybe :: Id -> Maybe RecSelParent #
scaleVarBy :: Mult -> Var -> Var #
setCaseBndrEvald :: StrictnessMark -> Id -> Id #
setIdArity :: Id -> Arity -> Id #
setIdCafInfo :: Id -> CafInfo -> Id #
setIdCallArity :: Id -> Arity -> Id #
setIdCprSig :: Id -> CprSig -> Id #
setIdDemandInfo :: Id -> Demand -> Id #
setIdDmdSig :: Id -> DmdSig -> Id #
setIdLFInfo :: Id -> LambdaFormInfo -> Id #
setIdOccInfo :: Id -> OccInfo -> Id #
setIdOneShotInfo :: Id -> OneShotInfo -> Id #
setIdSpecialisation :: Id -> RuleInfo -> Id #
setIdUnfolding :: Id -> Unfolding -> Id #
setIdUnique :: Id -> Unique -> Id #
setInlineActivation :: Id -> Activation -> Id #
setInlinePragma :: Id -> InlinePragma -> Id #
setOneShotLambda :: Id -> Id #
stateHackOneShot :: OneShotInfo #
typeOneShot :: Type -> OneShotInfo #
updOneShotInfo :: Id -> OneShotInfo -> Id #
zapFragileIdInfo :: Id -> Id #
zapIdDemandInfo :: Id -> Id #
zapIdDmdSig :: Id -> Id #
zapIdOccInfo :: Id -> Id #
zapIdTailCallInfo :: Id -> Id #
zapIdUsageEnvInfo :: Id -> Id #
zapIdUsageInfo :: Id -> Id #
zapIdUsedOnceInfo :: Id -> Id #
zapLamIdInfo :: Id -> Id #
zapStableUnfolding :: Id -> Id #
type TvSubstEnv = TyVarEnv Type #
data InScopeSet #
Instances
Outputable InScopeSet | |
Defined in GHC.Types.Var.Env ppr :: InScopeSet -> SDoc |
addInScopeSet :: Subst -> VarSet -> Subst #
cloneBndrs :: Subst -> UniqSupply -> [Var] -> (Subst, [Var]) #
cloneIdBndr :: Subst -> UniqSupply -> Id -> (Subst, Id) #
cloneIdBndrs :: Subst -> UniqSupply -> [Id] -> (Subst, [Id]) #
cloneRecIdBndrs :: Subst -> UniqSupply -> [Id] -> (Subst, [Id]) #
deShadowBinds :: CoreProgram -> CoreProgram #
emptySubst :: Subst #
extendIdSubst :: Subst -> Id -> CoreExpr -> Subst #
extendIdSubstList :: Subst -> [(Id, CoreExpr)] -> Subst #
extendInScope :: Subst -> Var -> Subst #
extendInScopeIds :: Subst -> [Id] -> Subst #
extendInScopeList :: Subst -> [Var] -> Subst #
extendSubst :: Subst -> Var -> CoreArg -> Subst #
extendSubstList :: Subst -> [(Var, CoreArg)] -> Subst #
getTCvSubst :: Subst -> TCvSubst #
isEmptySubst :: Subst -> Bool #
lookupIdSubst :: HasDebugCallStack => Subst -> Id -> CoreExpr #
lookupTCvSubst :: Subst -> TyVar -> Type #
mkEmptySubst :: InScopeSet -> Subst #
mkOpenSubst :: InScopeSet -> [(Var, CoreArg)] -> Subst #
mkSubst :: InScopeSet -> TvSubstEnv -> CvSubstEnv -> IdSubstEnv -> Subst #
setInScope :: Subst -> InScopeSet -> Subst #
substBindSC :: HasDebugCallStack => Subst -> CoreBind -> (Subst, CoreBind) #
substDVarSet :: Subst -> DVarSet -> DVarSet #
substExprSC :: HasDebugCallStack => Subst -> CoreExpr -> CoreExpr #
substIdInfo :: Subst -> Id -> IdInfo -> Maybe IdInfo #
substIdOcc :: Subst -> Id -> Id #
substIdType :: Subst -> Id -> Id #
substInScope :: Subst -> InScopeSet #
substRulesForImportedIds :: Subst -> [CoreRule] -> [CoreRule] #
substTickish :: Subst -> CoreTickish -> CoreTickish #
substUnfolding :: Subst -> Unfolding -> Unfolding #
substUnfoldingSC :: Subst -> Unfolding -> Unfolding #
zapSubstEnv :: Subst -> Subst #
type IdSubstEnv = IdEnv CoreExpr #
Instances
Outputable Subst | |
Defined in GHC.Core.Subst |
liftedTypeKind :: Kind #
closeOverKinds :: TyCoVarSet -> TyCoVarSet #
closeOverKindsDSet :: DTyVarSet -> DTyVarSet #
closeOverKindsList :: [TyVar] -> [TyVar] #
coVarsOfType :: Type -> CoVarSet #
coVarsOfTypes :: [Type] -> CoVarSet #
noFreeVarsOfType :: Type -> Bool #
scopedSort :: [TyCoVar] -> [TyCoVar] #
tyCoFVsBndr :: TyCoVarBinder -> FV -> FV #
tyCoFVsOfType :: Type -> FV #
tyCoFVsVarBndr :: Var -> FV -> FV #
tyCoFVsVarBndrs :: [Var] -> FV -> FV #
tyCoVarsOfType :: Type -> TyCoVarSet #
tyCoVarsOfTypeDSet :: Type -> DTyCoVarSet #
tyCoVarsOfTypeWellScoped :: Type -> [TyVar] #
tyCoVarsOfTypes :: [Type] -> TyCoVarSet #
tyCoVarsOfTypesWellScoped :: [Type] -> [TyVar] #
foldTyCo :: Monoid a => TyCoFolder env a -> env -> (Type -> a, [Type] -> a, Coercion -> a, [Coercion] -> a) #
isInvisibleBinder :: TyCoBinder -> Bool #
isNamedBinder :: TyCoBinder -> Bool #
isVisibleBinder :: TyCoBinder -> Bool #
mkForAllTys :: [TyCoVarBinder] -> Type -> Type #
mkInvisForAllTys :: [InvisTVBinder] -> Type -> Type #
mkInvisFunTyMany :: Type -> Type -> Type #
mkInvisFunTysMany :: [Type] -> Type -> Type #
mkPiTy :: TyCoBinder -> Type -> Type #
mkPiTys :: [TyCoBinder] -> Type -> Type #
mkTyVarTys :: [TyVar] -> [Type] #
mkVisFunTyMany :: Type -> Type -> Type #
mkVisFunTysMany :: [Type] -> Type -> Type #
cloneTyVarBndrs :: TCvSubst -> [TyVar] -> UniqSupply -> (TCvSubst, [TyVar]) #
composeTCvSubst :: TCvSubst -> TCvSubst -> TCvSubst #
composeTCvSubstEnv :: InScopeSet -> (TvSubstEnv, CvSubstEnv) -> (TvSubstEnv, CvSubstEnv) -> (TvSubstEnv, CvSubstEnv) #
extendTCvInScope :: TCvSubst -> Var -> TCvSubst #
extendTCvInScopeList :: TCvSubst -> [Var] -> TCvSubst #
extendTCvInScopeSet :: TCvSubst -> VarSet -> TCvSubst #
extendTvSubstBinderAndInScope :: TCvSubst -> TyCoBinder -> Type -> TCvSubst #
getTCvInScope :: TCvSubst -> InScopeSet #
getTCvSubstRangeFVs :: TCvSubst -> VarSet #
getTvSubstEnv :: TCvSubst -> TvSubstEnv #
isEmptyTCvSubst :: TCvSubst -> Bool #
mkEmptyTCvSubst :: InScopeSet -> TCvSubst #
mkTCvSubst :: InScopeSet -> (TvSubstEnv, CvSubstEnv) -> TCvSubst #
mkTvSubstPrs :: [(TyVar, Type)] -> TCvSubst #
notElemTCvSubst :: Var -> TCvSubst -> Bool #
setTvSubstEnv :: TCvSubst -> TvSubstEnv -> TCvSubst #
substCoUnchecked :: TCvSubst -> Coercion -> Coercion #
substScaledTy :: HasCallStack => TCvSubst -> Scaled Type -> Scaled Type #
substScaledTyUnchecked :: HasCallStack => TCvSubst -> Scaled Type -> Scaled Type #
substScaledTys :: HasCallStack => TCvSubst -> [Scaled Type] -> [Scaled Type] #
substTheta :: HasCallStack => TCvSubst -> ThetaType -> ThetaType #
substThetaUnchecked :: TCvSubst -> ThetaType -> ThetaType #
substTyAddInScope :: TCvSubst -> Type -> Type #
substTyCoBndr :: TCvSubst -> TyCoBinder -> (TCvSubst, TyCoBinder) #
substTyUnchecked :: TCvSubst -> Type -> Type #
substTyVar :: TCvSubst -> TyVar -> Type #
substTyVarBndr :: HasCallStack => TCvSubst -> TyVar -> (TCvSubst, TyVar) #
substTyVarBndrs :: HasCallStack => TCvSubst -> [TyVar] -> (TCvSubst, [TyVar]) #
substTyVars :: TCvSubst -> [TyVar] -> [Type] #
substTyWith :: HasCallStack => [TyVar] -> [Type] -> Type -> Type #
substTysUnchecked :: TCvSubst -> [Type] -> [Type] #
substVarBndr :: HasCallStack => TCvSubst -> TyCoVar -> (TCvSubst, TyCoVar) #
substVarBndrs :: HasCallStack => TCvSubst -> [TyCoVar] -> (TCvSubst, [TyCoVar]) #
unionTCvSubst :: TCvSubst -> TCvSubst -> TCvSubst #
zapTCvSubst :: TCvSubst -> TCvSubst #
zipCoEnv :: HasDebugCallStack => [CoVar] -> [Coercion] -> CvSubstEnv #
zipTCvSubst :: HasDebugCallStack => [TyCoVar] -> [Type] -> TCvSubst #
zipTvSubst :: HasDebugCallStack => [TyVar] -> [Type] -> TCvSubst #
zipTyEnv :: HasDebugCallStack => [TyVar] -> [Type] -> TvSubstEnv #
tidyFreeTyCoVars :: TidyEnv -> [TyCoVar] -> TidyEnv #
tidyOpenKind :: TidyEnv -> Kind -> (TidyEnv, Kind) #
tidyOpenTyCoVar :: TidyEnv -> TyCoVar -> (TidyEnv, TyCoVar) #
tidyOpenTyCoVars :: TidyEnv -> [TyCoVar] -> (TidyEnv, [TyCoVar]) #
tidyOpenType :: TidyEnv -> Type -> (TidyEnv, Type) #
tidyOpenTypes :: TidyEnv -> [Type] -> (TidyEnv, [Type]) #
tidyTopType :: Type -> Type #
tidyTyCoVarBinder :: TidyEnv -> VarBndr TyCoVar vis -> (TidyEnv, VarBndr TyCoVar vis) #
tidyTyCoVarBinders :: TidyEnv -> [VarBndr TyCoVar vis] -> (TidyEnv, [VarBndr TyCoVar vis]) #
tidyTyCoVarOcc :: TidyEnv -> TyCoVar -> TyCoVar #
tidyVarBndr :: TidyEnv -> TyCoVar -> (TidyEnv, TyCoVar) #
tidyVarBndrs :: TidyEnv -> [TyCoVar] -> (TidyEnv, [TyCoVar]) #
isConstraintKindCon :: TyCon -> Bool #
appTyArgFlags :: Type -> [Type] -> [ArgFlag] #
classifiesTypeWithValues :: Kind -> Bool #
coAxNthLHS :: forall (br :: BranchFlag). CoAxiom br -> Int -> Type #
dropForAlls :: Type -> Type #
dropRuntimeRepArgs :: [Type] -> [Type] #
eqVarBndrs :: RnEnv2 -> [Var] -> [Var] -> Maybe RnEnv2 #
expandTypeSynonyms :: Type -> Type #
filterOutInferredTypes :: TyCon -> [Type] -> [Type] #
filterOutInvisibleTypes :: TyCon -> [Type] -> [Type] #
funResultTy :: Type -> Type #
getRuntimeRep :: HasDebugCallStack => Type -> Type #
getRuntimeRep_maybe :: HasDebugCallStack => Type -> Maybe Type #
getTyVar_maybe :: Type -> Maybe TyVar #
invisibleTyBndrCount :: Type -> Int #
irrelevantMult :: Scaled a -> a #
isAnonTyCoBinder :: TyCoBinder -> Bool #
isAtomicTy :: Type -> Bool #
isBoxedRuntimeRep :: Type -> Bool #
isBoxedType :: Type -> Bool #
isBoxedTypeKind :: Kind -> Bool #
isCharLitTy :: Type -> Maybe Char #
isCoVarType :: Type -> Bool #
isCoercionTy :: Type -> Bool #
isCoercionTy_maybe :: Type -> Maybe Coercion #
isDataFamilyAppType :: Type -> Bool #
isFamFreeTy :: Type -> Bool #
isForAllTy :: Type -> Bool #
isForAllTy_co :: Type -> Bool #
isForAllTy_ty :: Type -> Bool #
isKindLevPoly :: Kind -> Bool #
isLevityTy :: Type -> Bool #
isLevityVar :: TyVar -> Bool #
isLiftedLevity :: Type -> Bool #
isLiftedRuntimeRep :: Type -> Bool #
isLiftedTypeKind :: Kind -> Bool #
isLiftedType_maybe :: HasDebugCallStack => Type -> Maybe Bool #
isLinearType :: Type -> Bool #
isManyDataConTy :: Mult -> Bool #
isMultiplicityTy :: Type -> Bool #
isMultiplicityVar :: TyVar -> Bool #
isNumLitTy :: Type -> Maybe Integer #
isOneDataConTy :: Mult -> Bool #
isPrimitiveType :: Type -> Bool #
isRuntimeRepKindedTy :: Type -> Bool #
isRuntimeRepTy :: Type -> Bool #
isRuntimeRepVar :: TyVar -> Bool #
isStrLitTy :: Type -> Maybe FastString #
isStrictType :: HasDebugCallStack => Type -> Bool #
isTypeLevPoly :: Type -> Bool #
isUnboxedSumType :: Type -> Bool #
isUnboxedTupleType :: Type -> Bool #
isUnliftedLevity :: Type -> Bool #
isUnliftedRuntimeRep :: Type -> Bool #
isUnliftedType :: HasDebugCallStack => Type -> Bool #
isUnliftedTypeKind :: Kind -> Bool #
isValidJoinPointType :: JoinArity -> Type -> Bool #
kindRep_maybe :: HasDebugCallStack => Kind -> Maybe Type #
mapTyCo :: Monad m => TyCoMapper () m -> (Type -> m Type, [Type] -> m [Type], Coercion -> m Coercion, [Coercion] -> m [Coercion]) #
mapTyCoX :: Monad m => TyCoMapper env m -> (env -> Type -> m Type, env -> [Type] -> m [Type], env -> Coercion -> m Coercion, env -> [Coercion] -> m [Coercion]) #
mightBeUnliftedType :: Type -> Bool #
mkAnonBinder :: AnonArgFlag -> Scaled Type -> TyCoBinder #
mkCharLitTy :: Char -> Type #
mkCoercionTy :: Coercion -> Type #
mkFamilyTyConApp :: TyCon -> [Type] -> Type #
mkInfForAllTy :: TyVar -> Type -> Type #
mkInfForAllTys :: [TyVar] -> Type -> Type #
mkNumLitTy :: Integer -> Type #
mkSpecForAllTy :: TyVar -> Type -> Type #
mkSpecForAllTys :: [TyVar] -> Type -> Type #
mkStrLitTy :: FastString -> Type #
mkTyCoInvForAllTy :: TyCoVar -> Type -> Type #
mkTyCoInvForAllTys :: [TyCoVar] -> Type -> Type #
mkTyConApp :: TyCon -> [Type] -> Type #
mkTyConBindersPreferAnon :: [TyVar] -> TyCoVarSet -> [TyConBinder] #
mkVisForAllTys :: [TyVar] -> Type -> Type #
newTyConInstRhs :: TyCon -> [Type] -> Type #
nonDetCmpTc :: TyCon -> TyCon -> Ordering #
nonDetCmpType :: Type -> Type -> Ordering #
nonDetCmpTypeX :: RnEnv2 -> Type -> Type -> Ordering #
nonDetCmpTypes :: [Type] -> [Type] -> Ordering #
nonDetCmpTypesX :: RnEnv2 -> [Type] -> [Type] -> Ordering #
partitionInvisibles :: [(a, ArgFlag)] -> ([a], [a]) #
piResultTy :: HasDebugCallStack => Type -> Type -> Type #
piResultTys :: HasDebugCallStack => Type -> [Type] -> Type #
pickyIsLiftedTypeKind :: Kind -> Bool #
pprUserTypeErrorTy :: Type -> SDoc #
repGetTyVar_maybe :: Type -> Maybe TyVar #
repSplitAppTys :: HasDebugCallStack => Type -> (Type, [Type]) #
resultIsLevPoly :: Type -> Bool #
splitAppTy :: Type -> (Type, Type) #
splitAppTys :: Type -> (Type, [Type]) #
splitForAllInvisTVBinders :: Type -> ([InvisTVBinder], Type) #
splitForAllReqTVBinders :: Type -> ([ReqTVBinder], Type) #
splitForAllTyCoVar :: Type -> (TyCoVar, Type) #
splitForAllTyCoVarBinders :: Type -> ([TyCoVarBinder], Type) #
splitForAllTyCoVars :: Type -> ([TyCoVar], Type) #
splitInvisPiTys :: Type -> ([TyCoBinder], Type) #
splitInvisPiTysN :: Int -> Type -> ([TyCoBinder], Type) #
splitListTyConApp_maybe :: Type -> Maybe Type #
splitPiTy :: Type -> (TyCoBinder, Type) #
splitPiTy_maybe :: Type -> Maybe (TyCoBinder, Type) #
splitPiTys :: Type -> ([TyCoBinder], Type) #
splitTyConApp :: Type -> (TyCon, [Type]) #
splitVisVarsOfType :: Type -> Pair TyCoVarSet #
splitVisVarsOfTypes :: [Type] -> Pair TyCoVarSet #
stripCoercionTy :: Type -> Coercion #
tcIsBoxedTypeKind :: Kind -> Bool #
tcIsConstraintKind :: Kind -> Bool #
tcIsLiftedTypeKind :: Kind -> Bool #
tcIsRuntimeTypeKind :: Kind -> Bool #
tcReturnsConstraintKind :: Kind -> Bool #
tcSplitTyConApp_maybe :: HasCallStack => Type -> Maybe (TyCon, [Type]) #
tcTypeKind :: HasDebugCallStack => Type -> Kind #
tyBinderType :: TyBinder -> Type #
tyCoBinderType :: TyCoBinder -> Type #
tyConAppArgN :: Int -> Type -> Type #
tyConAppArgs :: Type -> [Type] #
tyConAppArgs_maybe :: Type -> Maybe [Type] #
tyConAppTyCon :: Type -> TyCon #
tyConAppTyConPicky_maybe :: Type -> Maybe TyCon #
tyConAppTyCon_maybe :: Type -> Maybe TyCon #
tyConArgFlags :: TyCon -> [Type] -> [ArgFlag] #
tyConBindersTyCoBinders :: [TyConBinder] -> [TyCoBinder] #
tyConsOfType :: Type -> UniqSet TyCon #
unrestricted :: a -> Scaled a #
userTypeError_maybe :: Type -> Maybe Type #
binderArgFlag :: VarBndr tv argf -> argf #
binderType :: VarBndr TyCoVar argf -> Type #
binderVars :: [VarBndr tv argf] -> [tv] #
isInvisibleArgFlag :: ArgFlag -> Bool #
isVisibleArgFlag :: ArgFlag -> Bool #
mkTyCoVarBinder :: vis -> TyCoVar -> VarBndr TyCoVar vis #
mkTyCoVarBinders :: vis -> [TyCoVar] -> [VarBndr TyCoVar vis] #
mkTyVarBinder :: vis -> TyVar -> VarBndr TyVar vis #
mkTyVarBinders :: vis -> [TyVar] -> [VarBndr TyVar vis] #
tyVarSpecToBinders :: [VarBndr a Specificity] -> [VarBndr a ArgFlag] #
type KindOrType = Type #
Instances
Data a => Data (Scaled a) | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Scaled a -> c (Scaled a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Scaled a) # toConstr :: Scaled a -> Constr # dataTypeOf :: Scaled a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Scaled a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Scaled a)) # gmapT :: (forall b. Data b => b -> b) -> Scaled a -> Scaled a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Scaled a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Scaled a -> r # gmapQ :: (forall d. Data d => d -> u) -> Scaled a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Scaled a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Scaled a -> m (Scaled a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Scaled a -> m (Scaled a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Scaled a -> m (Scaled a) # | |
Outputable a => Outputable (Scaled a) | |
Defined in GHC.Core.TyCo.Rep |
data TyCoBinder #
Instances
Data TyCoBinder | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyCoBinder -> c TyCoBinder # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyCoBinder # toConstr :: TyCoBinder -> Constr # dataTypeOf :: TyCoBinder -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyCoBinder) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyCoBinder) # gmapT :: (forall b. Data b => b -> b) -> TyCoBinder -> TyCoBinder # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyCoBinder -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyCoBinder -> r # gmapQ :: (forall d. Data d => d -> u) -> TyCoBinder -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyCoBinder -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyCoBinder -> m TyCoBinder # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyCoBinder -> m TyCoBinder # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyCoBinder -> m TyCoBinder # | |
Outputable TyCoBinder | |
Defined in GHC.Core.TyCo.Rep ppr :: TyCoBinder -> SDoc |
data TyCoFolder env a #
Instances
Data Type | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type # dataTypeOf :: Type -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) # gmapT :: (forall b. Data b => b -> b) -> Type -> Type # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # | |
Outputable Type | |
Defined in GHC.Core.TyCo.Rep | |
Eq (DeBruijn Type) | |
Instances
Outputable TCvSubst | |
Defined in GHC.Core.TyCo.Subst |
type TvSubstEnv = TyVarEnv Type #
data TyCoMapper env (m :: Type -> Type) #
data AnonArgFlag #
Instances
Eq AnonArgFlag | |
Defined in GHC.Types.Var (==) :: AnonArgFlag -> AnonArgFlag -> Bool # (/=) :: AnonArgFlag -> AnonArgFlag -> Bool # | |
Data AnonArgFlag | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnonArgFlag -> c AnonArgFlag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnonArgFlag # toConstr :: AnonArgFlag -> Constr # dataTypeOf :: AnonArgFlag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnonArgFlag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnonArgFlag) # gmapT :: (forall b. Data b => b -> b) -> AnonArgFlag -> AnonArgFlag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnonArgFlag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnonArgFlag -> r # gmapQ :: (forall d. Data d => d -> u) -> AnonArgFlag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnonArgFlag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnonArgFlag -> m AnonArgFlag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnonArgFlag -> m AnonArgFlag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnonArgFlag -> m AnonArgFlag # | |
Ord AnonArgFlag | |
Defined in GHC.Types.Var compare :: AnonArgFlag -> AnonArgFlag -> Ordering # (<) :: AnonArgFlag -> AnonArgFlag -> Bool # (<=) :: AnonArgFlag -> AnonArgFlag -> Bool # (>) :: AnonArgFlag -> AnonArgFlag -> Bool # (>=) :: AnonArgFlag -> AnonArgFlag -> Bool # max :: AnonArgFlag -> AnonArgFlag -> AnonArgFlag # min :: AnonArgFlag -> AnonArgFlag -> AnonArgFlag # | |
Binary AnonArgFlag | |
Defined in GHC.Types.Var put_ :: BinHandle -> AnonArgFlag -> IO () put :: BinHandle -> AnonArgFlag -> IO (Bin AnonArgFlag) get :: BinHandle -> IO AnonArgFlag | |
Outputable AnonArgFlag | |
Defined in GHC.Types.Var ppr :: AnonArgFlag -> SDoc |
Instances
Eq ArgFlag | |
Data ArgFlag | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArgFlag -> c ArgFlag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArgFlag # toConstr :: ArgFlag -> Constr # dataTypeOf :: ArgFlag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArgFlag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArgFlag) # gmapT :: (forall b. Data b => b -> b) -> ArgFlag -> ArgFlag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArgFlag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArgFlag -> r # gmapQ :: (forall d. Data d => d -> u) -> ArgFlag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ArgFlag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag # | |
Ord ArgFlag | |
Binary ArgFlag | |
Outputable ArgFlag | |
Defined in GHC.Types.Var | |
Outputable tv => Outputable (VarBndr tv ArgFlag) | |
Defined in GHC.Types.Var |
data Specificity #
Instances
Eq Specificity | |
Defined in GHC.Types.Var (==) :: Specificity -> Specificity -> Bool # (/=) :: Specificity -> Specificity -> Bool # | |
Data Specificity | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Specificity -> c Specificity # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Specificity # toConstr :: Specificity -> Constr # dataTypeOf :: Specificity -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Specificity) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Specificity) # gmapT :: (forall b. Data b => b -> b) -> Specificity -> Specificity # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r # gmapQ :: (forall d. Data d => d -> u) -> Specificity -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Specificity -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity # | |
Ord Specificity | |
Defined in GHC.Types.Var compare :: Specificity -> Specificity -> Ordering # (<) :: Specificity -> Specificity -> Bool # (<=) :: Specificity -> Specificity -> Bool # (>) :: Specificity -> Specificity -> Bool # (>=) :: Specificity -> Specificity -> Bool # max :: Specificity -> Specificity -> Specificity # min :: Specificity -> Specificity -> Specificity # | |
Binary Specificity | |
Defined in GHC.Types.Var put_ :: BinHandle -> Specificity -> IO () put :: BinHandle -> Specificity -> IO (Bin Specificity) get :: BinHandle -> IO Specificity | |
OutputableBndrFlag Specificity p | |
Defined in GHC.Hs.Type pprTyVarBndr :: HsTyVarBndr Specificity (GhcPass p) -> SDoc | |
Outputable tv => Outputable (VarBndr tv Specificity) | |
Defined in GHC.Types.Var ppr :: VarBndr tv Specificity -> SDoc |
type TyCoVarBinder = VarBndr TyCoVar ArgFlag #
type TyVarBinder = VarBndr TyVar ArgFlag #
Instances
Eq Var | |
Data Var | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |
Ord Var | |
Uniquable Var | |
Defined in GHC.Types.Var | |
Outputable Var | |
Defined in GHC.Types.Var | |
NamedThing Var | |
Defined in GHC.Types.Var | |
HasOccName Var | |
Defined in GHC.Types.Var | |
Eq (DeBruijn CoreExpr) Source # | |
Eq (DeBruijn CoreAlt) Source # | |
type Anno Id | |
Defined in GHC.Hs.Extension type Anno Id = SrcSpanAnnN | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds |
pickLR :: LeftOrRight -> (a, a) -> a #
data LeftOrRight #
Instances
Eq LeftOrRight | |
Defined in GHC.Types.Basic (==) :: LeftOrRight -> LeftOrRight -> Bool # (/=) :: LeftOrRight -> LeftOrRight -> Bool # | |
Data LeftOrRight | |
Defined in GHC.Types.Basic gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LeftOrRight -> c LeftOrRight # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LeftOrRight # toConstr :: LeftOrRight -> Constr # dataTypeOf :: LeftOrRight -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LeftOrRight) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LeftOrRight) # gmapT :: (forall b. Data b => b -> b) -> LeftOrRight -> LeftOrRight # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LeftOrRight -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LeftOrRight -> r # gmapQ :: (forall d. Data d => d -> u) -> LeftOrRight -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LeftOrRight -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LeftOrRight -> m LeftOrRight # | |
Binary LeftOrRight | |
Defined in GHC.Types.Basic put_ :: BinHandle -> LeftOrRight -> IO () put :: BinHandle -> LeftOrRight -> IO (Bin LeftOrRight) get :: BinHandle -> IO LeftOrRight | |
Outputable LeftOrRight | |
Defined in GHC.Types.Basic ppr :: LeftOrRight -> SDoc |
Instances
Eq Var | |
Data Var | |
Defined in GHC.Types.Var gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |
Ord Var | |
Uniquable Var | |
Defined in GHC.Types.Var | |
Outputable Var | |
Defined in GHC.Types.Var | |
NamedThing Var | |
Defined in GHC.Types.Var | |
HasOccName Var | |
Defined in GHC.Types.Var | |
Eq (DeBruijn CoreExpr) Source # | |
Eq (DeBruijn CoreAlt) Source # | |
type Anno Id | |
Defined in GHC.Hs.Extension type Anno Id = SrcSpanAnnN | |
type Anno [LocatedN Id] | |
Defined in GHC.Hs.Binds | |
type Anno (LocatedN Id) | |
Defined in GHC.Hs.Binds |
Instances
Data Coercion | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Coercion -> c Coercion # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Coercion # toConstr :: Coercion -> Constr # dataTypeOf :: Coercion -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Coercion) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Coercion) # gmapT :: (forall b. Data b => b -> b) -> Coercion -> Coercion # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Coercion -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Coercion -> r # gmapQ :: (forall d. Data d => d -> u) -> Coercion -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Coercion -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Coercion -> m Coercion # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion -> m Coercion # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Coercion -> m Coercion # | |
Outputable Coercion | |
Defined in GHC.Core.TyCo.Rep | |
Eq (DeBruijn Coercion) | |
data CoercionHole #
Instances
Data CoercionHole | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CoercionHole -> c CoercionHole # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CoercionHole # toConstr :: CoercionHole -> Constr # dataTypeOf :: CoercionHole -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CoercionHole) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CoercionHole) # gmapT :: (forall b. Data b => b -> b) -> CoercionHole -> CoercionHole # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CoercionHole -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CoercionHole -> r # gmapQ :: (forall d. Data d => d -> u) -> CoercionHole -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CoercionHole -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CoercionHole -> m CoercionHole # | |
Uniquable CoercionHole | |
Defined in GHC.Core.TyCo.Rep getUnique :: CoercionHole -> Unique # | |
Outputable CoercionHole | |
Defined in GHC.Core.TyCo.Rep ppr :: CoercionHole -> SDoc |
Instances
Eq Role | |
Data Role | |
Defined in GHC.Core.Coercion.Axiom gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Role -> c Role # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Role # dataTypeOf :: Role -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Role) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Role) # gmapT :: (forall b. Data b => b -> b) -> Role -> Role # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r # gmapQ :: (forall d. Data d => d -> u) -> Role -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Role -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role # | |
Ord Role | |
Binary Role | |
Outputable Role | |
Defined in GHC.Core.Coercion.Axiom | |
type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls | |
type Anno (Maybe Role) | |
Defined in GHC.Hs.Decls |
buildCoercion :: Type -> Type -> CoercionN #
coVarTypes :: HasDebugCallStack => CoVar -> Pair Type #
coercionHolesOfCo :: Coercion -> UniqSet CoercionHole #
coercionHolesOfType :: Type -> UniqSet CoercionHole #
coercionKind :: Coercion -> Pair Type #
coercionKindRole :: Coercion -> (Pair Type, Role) #
coercionKinds :: [Coercion] -> Pair [Type] #
coercionLKind :: Coercion -> Type #
coercionRKind :: Coercion -> Type #
coercionRole :: Coercion -> Role #
coercionType :: Coercion -> Type #
composeSteppers :: NormaliseStepper ev -> NormaliseStepper ev -> NormaliseStepper ev #
decomposeCo :: Arity -> Coercion -> [Role] -> [Coercion] #
decomposePiCos :: HasDebugCallStack => CoercionN -> Pair Type -> [Type] -> ([CoercionN], CoercionN) #
eqCoercion :: Coercion -> Coercion -> Bool #
eqCoercionX :: RnEnv2 -> Coercion -> Coercion -> Bool #
etaExpandCoAxBranch :: CoAxBranch -> ([TyVar], [Type], Type) #
extendLiftingContext :: LiftingContext -> TyCoVar -> Coercion -> LiftingContext #
getCoVar_maybe :: Coercion -> Maybe CoVar #
hasCoercionHoleCo :: Coercion -> Bool #
hasCoercionHoleTy :: Type -> Bool #
isCoVar_maybe :: Coercion -> Maybe CoVar #
isGReflMCo :: MCoercion -> Bool #
isMappedByLC :: TyCoVar -> LiftingContext -> Bool #
isReflCoVar_maybe :: Var -> Maybe Coercion #
isReflexiveCo :: Coercion -> Bool #
lcSubstLeft :: LiftingContext -> TCvSubst #
lcSubstRight :: LiftingContext -> TCvSubst #
lcTCvSubst :: LiftingContext -> TCvSubst #
liftCoSubst :: HasDebugCallStack => Role -> LiftingContext -> Type -> Coercion #
liftCoSubstTyVar :: LiftingContext -> Role -> TyVar -> Maybe Coercion #
liftCoSubstVarBndrUsing :: (LiftingContext -> Type -> (CoercionN, a)) -> LiftingContext -> TyCoVar -> (LiftingContext, TyCoVar, CoercionN, a) #
liftCoSubstWithEx :: Role -> [TyVar] -> [Coercion] -> [TyCoVar] -> [Type] -> (Type -> Coercion, [Type]) #
liftEnvSubstLeft :: TCvSubst -> LiftCoEnv -> TCvSubst #
liftEnvSubstRight :: TCvSubst -> LiftCoEnv -> TCvSubst #
mapStepResult :: (ev1 -> ev2) -> NormaliseStepResult ev1 -> NormaliseStepResult ev2 #
mkAxInstCo :: forall (br :: BranchFlag). Role -> CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Coercion #
mkAxInstLHS :: forall (br :: BranchFlag). CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Type #
mkAxInstRHS :: forall (br :: BranchFlag). CoAxiom br -> BranchIndex -> [Type] -> [Coercion] -> Type #
mkAxiomInstCo :: CoAxiom Branched -> BranchIndex -> [Coercion] -> Coercion #
mkAxiomRuleCo :: CoAxiomRule -> [Coercion] -> Coercion #
mkCastTyMCo :: Type -> MCoercion -> Type #
mkCoVarCos :: [CoVar] -> [Coercion] #
mkCoherenceRightMCo :: Role -> Type -> MCoercionN -> Coercion -> Coercion #
mkFamilyTyConAppCo :: TyCon -> [CoercionN] -> CoercionN #
mkGReflLeftMCo :: Role -> Type -> MCoercionN -> Coercion #
mkGReflRightMCo :: Role -> Type -> MCoercionN -> Coercion #
mkHoleCo :: CoercionHole -> Coercion #
mkHomoForAllCos :: [TyCoVar] -> Coercion -> Coercion #
mkLRCo :: LeftOrRight -> Coercion -> Coercion #
mkNomReflCo :: Type -> Coercion #
mkPrimEqPred :: Type -> Type -> Type #
mkRepReflCo :: Type -> Coercion #
mkReprPrimEqPred :: Type -> Type -> Type #
mkTransMCo :: MCoercion -> MCoercion -> MCoercion #
mkTransMCoL :: MCoercion -> Coercion -> MCoercion #
mkUnbranchedAxInstLHS :: CoAxiom Unbranched -> [Type] -> [Coercion] -> Type #
mkUnbranchedAxInstRHS :: CoAxiom Unbranched -> [Type] -> [Coercion] -> Type #
pprCoAxBranch :: TyCon -> CoAxBranch -> SDoc #
pprCoAxBranchLHS :: TyCon -> CoAxBranch -> SDoc #
pprCoAxBranchUser :: TyCon -> CoAxBranch -> SDoc #
pprCoAxiom :: forall (br :: BranchFlag). CoAxiom br -> SDoc #
promoteCoercion :: Coercion -> CoercionN #
setCoVarName :: CoVar -> Name -> CoVar #
setCoVarUnique :: CoVar -> Unique -> CoVar #
simplifyArgsWorker :: [TyCoBinder] -> Kind -> TyCoVarSet -> [Role] -> [(Type, Coercion)] -> ([Type], [Coercion], MCoercionN) #
substForAllCoBndrUsingLC :: Bool -> (Coercion -> Coercion) -> LiftingContext -> TyCoVar -> Coercion -> (LiftingContext, TyCoVar, Coercion) #
substLeftCo :: LiftingContext -> Coercion -> Coercion #
substRightCo :: LiftingContext -> Coercion -> Coercion #
swapLiftCoEnv :: LiftCoEnv -> LiftCoEnv #
tidyCoAxBndrsForUser :: TidyEnv -> [Var] -> (TidyEnv, [Var]) #
topNormaliseTypeX :: NormaliseStepper ev -> (ev -> ev -> ev) -> Type -> Maybe (ev, Type) #
tyConRolesRepresentational :: TyCon -> [Role] #
tyConRolesX :: Role -> TyCon -> [Role] #
coVarsOfCo :: Coercion -> CoVarSet #
tyCoFVsOfCo :: Coercion -> FV #
tyCoFVsOfCos :: [Coercion] -> FV #
tyCoVarsOfCo :: Coercion -> TyCoVarSet #
tyCoVarsOfCoDSet :: Coercion -> DTyCoVarSet #
tyCoVarsOfCos :: [Coercion] -> TyCoVarSet #
pprParendCo :: Coercion -> SDoc #
coHoleCoVar :: CoercionHole -> CoVar #
coercionSize :: Coercion -> Int #
setCoHoleCoVar :: CoercionHole -> CoVar -> CoercionHole #
getCvSubstEnv :: TCvSubst -> CvSubstEnv #
substCoVar :: TCvSubst -> CoVar -> Coercion #
substCoVarBndr :: HasCallStack => TCvSubst -> CoVar -> (TCvSubst, CoVar) #
substCoVars :: TCvSubst -> [CoVar] -> [Coercion] #
substCoWith :: HasCallStack => [TyVar] -> [Type] -> Coercion -> Coercion #
type HoleSet = UniqSet CoercionHole #
data LiftingContext #
Instances
Outputable LiftingContext | |
Defined in GHC.Core.Coercion ppr :: LiftingContext -> SDoc |
data NormaliseStepResult ev #
Instances
Outputable ev => Outputable (NormaliseStepResult ev) | |
Defined in GHC.Core.Coercion ppr :: NormaliseStepResult ev -> SDoc |
type NormaliseStepper ev = RecTcChecker -> TyCon -> [Type] -> NormaliseStepResult ev #
Instances
Data MCoercion | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MCoercion -> c MCoercion # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MCoercion # toConstr :: MCoercion -> Constr # dataTypeOf :: MCoercion -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MCoercion) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MCoercion) # gmapT :: (forall b. Data b => b -> b) -> MCoercion -> MCoercion # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MCoercion -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MCoercion -> r # gmapQ :: (forall d. Data d => d -> u) -> MCoercion -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MCoercion -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MCoercion -> m MCoercion # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MCoercion -> m MCoercion # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MCoercion -> m MCoercion # | |
Outputable MCoercion | |
Defined in GHC.Core.TyCo.Rep |
type MCoercionN = MCoercion #
type MCoercionR = MCoercion #
data UnivCoProvenance #
Instances
Data UnivCoProvenance | |
Defined in GHC.Core.TyCo.Rep gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnivCoProvenance -> c UnivCoProvenance # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnivCoProvenance # toConstr :: UnivCoProvenance -> Constr # dataTypeOf :: UnivCoProvenance -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnivCoProvenance) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnivCoProvenance) # gmapT :: (forall b. Data b => b -> b) -> UnivCoProvenance -> UnivCoProvenance # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnivCoProvenance -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnivCoProvenance -> r # gmapQ :: (forall d. Data d => d -> u) -> UnivCoProvenance -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UnivCoProvenance -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnivCoProvenance -> m UnivCoProvenance # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnivCoProvenance -> m UnivCoProvenance # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnivCoProvenance -> m UnivCoProvenance # | |
Outputable UnivCoProvenance | |
Defined in GHC.Core.TyCo.Rep ppr :: UnivCoProvenance -> SDoc |
type CvSubstEnv = CoVarEnv Coercion #
Instances
Instances
Eq Unique | |
Show Unique | |
Uniquable Unique | |
Defined in GHC.Types.Unique | |
Outputable Unique | |
Defined in GHC.Types.Unique |
Getting Name
s
thNameToGhcName :: Name -> CoreM (Maybe Name) Source #
Attempt to convert a Template Haskell name to one that GHC can
understand. Original TH names such as those you get when you use
the 'foo
syntax will be translated to their equivalent GHC name
exactly. Qualified or unqualified TH names will be dynamically bound
to names in the module being compiled, if possible. Exact TH names
will be bound to the name they represent, exactly.
Orphan instances
MonadThings CoreM Source # | |
lookupThing :: Name -> CoreM TyThing lookupDataCon :: Name -> CoreM DataCon lookupTyCon :: Name -> CoreM TyCon |