Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data TyThing
- data TcTyThing
- = AGlobal TyThing
- | ATcId {
- tct_id :: TcId
- tct_info :: IdBindingInfo
- | ATyVar Name TcTyVar
- | ATcTyCon TyCon
- | APromotionErr PromotionErr
- 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
- tcTyThBinders :: [TyThing] -> TcM ThBindEnv
- 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
- lookupGlobal_maybe :: HscEnv -> Name -> IO (MaybeErr SDoc 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, HasModule m) => IORef (ModuleEnv Int) -> String -> String -> m FastString
Documentation
A global typecheckable-thing, essentially anything that has a name.
Not to be confused with a TcTyThing
, which is also a typecheckable
thing but in the *local* context. See GHC.Tc.Utils.Env for how to retrieve
a TyThing
given a Name
.
Instances
NamedThing TyThing | |
Defined in GHC.Types.TyThing | |
Outputable TyThing | |
Defined in GHC.Types.TyThing |
A typecheckable thing available in a local context. Could be
AGlobal
TyThing
, but also lexically scoped variables, etc.
See GHC.Tc.Utils.Env for how to retrieve a TyThing
given a Name
.
AGlobal TyThing | |
ATcId | |
| |
ATyVar Name TcTyVar | |
ATcTyCon TyCon | |
APromotionErr PromotionErr |
Instances
Outputable TcTyThing | |
Defined in GHC.Tc.Types |
InstInfo | |
|
Instances
OutputableBndrId a => Outputable (InstInfo (GhcPass a)) Source # | |
pprInstInfoDetails :: OutputableBndrId a => InstInfo (GhcPass a) -> SDoc Source #
simpleInstInfoTy :: InstInfo a -> Type Source #
simpleInstInfoTyCon :: InstInfo a -> TyCon Source #
data InstBindings a Source #
InstBindings | |
|
tcExtendLetEnv :: TopLevelFlag -> TcSigFun -> IsGroupClosed -> [TcId] -> TcM a -> TcM a Source #
tcExtendSigIds :: TopLevelFlag -> [TcId] -> TcM a -> TcM a 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.
tcLookupTcTyCon :: HasDebugCallStack => Name -> TcM TcTyCon Source #
pprBinders :: [Name] -> SDoc Source #
tcAddPatSynPlaceholders :: [PatSynBind GhcRn GhcRn] -> TcM a -> TcM a 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.
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, HasModule m) => IORef (ModuleEnv Int) -> String -> String -> m FastString Source #
mkWrapperName ref what nameBase
See Note [Generating fresh names for FFI wrappers] for ref
's purpose.