Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data TyThing
- data TcTyThing
- type TcId = Id
- data InstInfo a = InstInfo {
- iSpec :: ClsInst
- iBinds :: InstBindings a
- iDFunId :: InstInfo a -> DFunId
- pprInstInfoDetails :: OutputableBndrId a => InstInfo (GhcPass a) -> SDoc
- simpleInstInfoClsTy :: InstInfo a -> (Class, Type)
- simpleInstInfoTy :: InstInfo a -> Type
- simpleInstInfoTyCon :: InstInfo a -> TyCon
- data InstBindings a = InstBindings {
- ib_tyvars :: [Name]
- ib_binds :: LHsBinds a
- ib_pragmas :: [LSig a]
- ib_extensions :: [Extension]
- ib_derived :: Bool
- tcExtendGlobalEnv :: [TyThing] -> TcM r -> TcM r
- tcExtendTyConEnv :: [TyCon] -> TcM r -> TcM r
- tcExtendGlobalEnvImplicit :: [TyThing] -> TcM r -> TcM r
- setGlobalTypeEnv :: TcGblEnv -> TypeEnv -> TcM TcGblEnv
- tcExtendGlobalValEnv :: [Id] -> TcM a -> TcM a
- tcLookupLocatedGlobal :: LocatedA Name -> TcM TyThing
- tcLookupGlobal :: Name -> TcM TyThing
- tcLookupGlobalOnly :: Name -> TcM TyThing
- tcLookupTyCon :: Name -> TcM TyCon
- tcLookupClass :: Name -> TcM Class
- tcLookupDataCon :: Name -> TcM DataCon
- tcLookupPatSyn :: Name -> TcM PatSyn
- tcLookupConLike :: Name -> TcM ConLike
- tcLookupLocatedGlobalId :: LocatedA Name -> TcM Id
- tcLookupLocatedTyCon :: LocatedN Name -> TcM TyCon
- tcLookupLocatedClass :: LocatedA Name -> TcM Class
- tcLookupAxiom :: Name -> TcM (CoAxiom Branched)
- lookupGlobal :: HscEnv -> Name -> IO TyThing
- ioLookupDataCon :: HscEnv -> Name -> IO DataCon
- addTypecheckedBinds :: TcGblEnv -> [LHsBinds GhcTc] -> TcGblEnv
- tcExtendKindEnv :: NameEnv TcTyThing -> TcM r -> TcM r
- tcExtendKindEnvList :: [(Name, TcTyThing)] -> TcM r -> TcM r
- tcExtendTyVarEnv :: [TyVar] -> TcM r -> TcM r
- tcExtendNameTyVarEnv :: [(Name, TcTyVar)] -> TcM r -> TcM r
- tcExtendLetEnv :: TopLevelFlag -> TcSigFun -> IsGroupClosed -> [TcId] -> TcM a -> TcM a
- tcExtendSigIds :: TopLevelFlag -> [TcId] -> TcM a -> TcM a
- tcExtendRecIds :: [(Name, TcId)] -> TcM a -> TcM a
- tcExtendIdEnv :: [TcId] -> TcM a -> TcM a
- tcExtendIdEnv1 :: Name -> TcId -> TcM a -> TcM a
- tcExtendIdEnv2 :: [(Name, TcId)] -> TcM a -> TcM a
- tcExtendBinderStack :: [TcBinder] -> TcM a -> TcM a
- tcExtendLocalTypeEnv :: TcLclEnv -> [(Name, TcTyThing)] -> TcLclEnv
- isTypeClosedLetBndr :: Id -> Bool
- tcCheckUsage :: Name -> Mult -> TcM a -> TcM (a, HsWrapper)
- tcLookup :: Name -> TcM TcTyThing
- tcLookupLocated :: LocatedA Name -> TcM TcTyThing
- tcLookupLocalIds :: [Name] -> TcM [TcId]
- tcLookupId :: Name -> TcM Id
- tcLookupIdMaybe :: Name -> TcM (Maybe Id)
- tcLookupTyVar :: Name -> TcM TcTyVar
- tcLookupTcTyCon :: HasDebugCallStack => Name -> TcM TcTyCon
- tcLookupLcl_maybe :: Name -> TcM (Maybe TcTyThing)
- getInLocalScope :: TcM (Name -> Bool)
- wrongThingErr :: String -> TcTyThing -> Name -> TcM a
- pprBinders :: [Name] -> SDoc
- tcAddDataFamConPlaceholders :: [LInstDecl GhcRn] -> TcM a -> TcM a
- tcAddPatSynPlaceholders :: [PatSynBind GhcRn GhcRn] -> TcM a -> TcM a
- getTypeSigNames :: [LSig GhcRn] -> NameSet
- tcExtendRecEnv :: [(Name, TyThing)] -> TcM r -> TcM r
- tcInitTidyEnv :: TcM TidyEnv
- tcInitOpenTidyEnv :: [TyCoVar] -> TcM TidyEnv
- tcLookupInstance :: Class -> [Type] -> TcM ClsInst
- tcGetInstEnvs :: TcM InstEnvs
- tcExtendRules :: [LRuleDecl GhcTc] -> TcM a -> TcM a
- tcGetDefaultTys :: TcM ([Type], (Bool, Bool))
- checkWellStaged :: SDoc -> ThLevel -> ThLevel -> TcM ()
- tcMetaTy :: Name -> TcM Type
- thLevel :: ThStage -> ThLevel
- topIdLvl :: Id -> ThLevel
- isBrackStage :: ThStage -> Bool
- newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name
- newFamInstTyConName :: LocatedN Name -> [Type] -> TcM Name
- newFamInstAxiomName :: LocatedN Name -> [[Type]] -> TcM Name
- mkStableIdFromString :: String -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId
- mkStableIdFromName :: Name -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId
- mkWrapperName :: (MonadIO m, HasDynFlags m, HasModule m) => String -> String -> m FastString
Documentation
Instances
Outputable TyThing | |
Defined in GHC.Types.TyThing | |
NamedThing TyThing | |
Defined in GHC.Types.TyThing |
Instances
Outputable TcTyThing | |
Defined in GHC.Tc.Types |
InstInfo | |
|
pprInstInfoDetails :: OutputableBndrId a => InstInfo (GhcPass a) -> SDoc Source #
simpleInstInfoTy :: InstInfo a -> Type Source #
simpleInstInfoTyCon :: InstInfo a -> TyCon Source #
data InstBindings a Source #
InstBindings | |
|
tcExtendGlobalEnv :: [TyThing] -> TcM r -> TcM r Source #
tcExtendTyConEnv :: [TyCon] -> TcM r -> TcM r Source #
tcExtendGlobalEnvImplicit :: [TyThing] -> TcM r -> TcM r Source #
setGlobalTypeEnv :: TcGblEnv -> TypeEnv -> TcM TcGblEnv Source #
tcExtendGlobalValEnv :: [Id] -> TcM a -> TcM a Source #
tcLookupLocatedGlobal :: LocatedA Name -> TcM TyThing Source #
tcLookupGlobal :: Name -> TcM TyThing Source #
tcLookupGlobalOnly :: Name -> TcM TyThing Source #
tcLookupTyCon :: Name -> TcM TyCon Source #
tcLookupClass :: Name -> TcM Class Source #
tcLookupDataCon :: Name -> TcM DataCon Source #
tcLookupPatSyn :: Name -> TcM PatSyn Source #
tcLookupConLike :: Name -> TcM ConLike Source #
tcLookupLocatedGlobalId :: LocatedA Name -> TcM Id Source #
tcLookupLocatedTyCon :: LocatedN Name -> TcM TyCon Source #
tcLookupLocatedClass :: LocatedA Name -> TcM Class Source #
tcLookupAxiom :: Name -> TcM (CoAxiom Branched) Source #
addTypecheckedBinds :: TcGblEnv -> [LHsBinds GhcTc] -> TcGblEnv Source #
tcExtendKindEnv :: NameEnv TcTyThing -> TcM r -> TcM r Source #
tcExtendKindEnvList :: [(Name, TcTyThing)] -> TcM r -> TcM r Source #
tcExtendTyVarEnv :: [TyVar] -> TcM r -> TcM r Source #
tcExtendNameTyVarEnv :: [(Name, TcTyVar)] -> TcM r -> TcM r Source #
tcExtendLetEnv :: TopLevelFlag -> TcSigFun -> IsGroupClosed -> [TcId] -> TcM a -> TcM a Source #
tcExtendSigIds :: TopLevelFlag -> [TcId] -> TcM a -> TcM a Source #
tcExtendRecIds :: [(Name, TcId)] -> TcM a -> TcM a Source #
tcExtendIdEnv :: [TcId] -> TcM a -> TcM a Source #
tcExtendIdEnv1 :: Name -> TcId -> TcM a -> TcM a Source #
tcExtendIdEnv2 :: [(Name, TcId)] -> TcM a -> TcM a Source #
tcExtendBinderStack :: [TcBinder] -> TcM a -> TcM a Source #
tcExtendLocalTypeEnv :: TcLclEnv -> [(Name, TcTyThing)] -> TcLclEnv Source #
isTypeClosedLetBndr :: Id -> Bool Source #
tcCheckUsage :: Name -> Mult -> TcM a -> TcM (a, HsWrapper) Source #
tcCheckUsage name mult thing_inside
runs thing_inside
, checks that the
usage of name
is a submultiplicity of mult
, and removes name
from the
usage environment. See also Note [Wrapper returned from tcSubMult] in
GHC.Tc.Utils.Unify, which applies to the wrapper returned from this function.
tcLookupLocated :: LocatedA Name -> TcM TcTyThing Source #
tcLookupLocalIds :: [Name] -> TcM [TcId] Source #
tcLookupId :: Name -> TcM Id Source #
tcLookupTyVar :: Name -> TcM TcTyVar Source #
tcLookupTcTyCon :: HasDebugCallStack => Name -> TcM TcTyCon Source #
getInLocalScope :: TcM (Name -> Bool) Source #
pprBinders :: [Name] -> SDoc Source #
tcAddDataFamConPlaceholders :: [LInstDecl GhcRn] -> TcM a -> TcM a Source #
tcAddPatSynPlaceholders :: [PatSynBind GhcRn GhcRn] -> TcM a -> TcM a Source #
getTypeSigNames :: [LSig GhcRn] -> NameSet Source #
tcExtendRecEnv :: [(Name, TyThing)] -> TcM r -> TcM r Source #
tcInitTidyEnv :: TcM TidyEnv Source #
tcInitOpenTidyEnv :: [TyCoVar] -> TcM TidyEnv Source #
Get a TidyEnv
that includes mappings for all vars free in the given
type. Useful when tidying open types.
tcGetInstEnvs :: TcM InstEnvs Source #
tcExtendRules :: [LRuleDecl GhcTc] -> TcM a -> TcM a Source #
checkWellStaged :: SDoc -> ThLevel -> ThLevel -> TcM () Source #
isBrackStage :: ThStage -> Bool Source #
newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name Source #
Make a name for the dict fun for an instance decl. It's an *external* name, like other top-level names, and hence must be made with newGlobalBinder.
mkWrapperName :: (MonadIO m, HasDynFlags m, HasModule m) => String -> String -> m FastString Source #
Orphan instances
MonadThings (IOEnv (Env TcGblEnv TcLclEnv)) Source # | |
lookupThing :: Name -> IOEnv (Env TcGblEnv TcLclEnv) TyThing lookupId :: Name -> IOEnv (Env TcGblEnv TcLclEnv) Id lookupDataCon :: Name -> IOEnv (Env TcGblEnv TcLclEnv) DataCon lookupTyCon :: Name -> IOEnv (Env TcGblEnv TcLclEnv) TyCon |