TcEnv

ghc-7.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

TcEnv

Synopsis

- data TyThing
  - = AnId Id
  - | AConLike ConLike
  - | ATyCon TyCon
  - | ACoAxiom (CoAxiom Branched)
- data TcTyThing
  - = AGlobal TyThing
  - | ATcId {
    - tct_id :: TcId
    - tct_closed :: TopLevelFlag
    }
  - | ATyVar Name TcTyVar
  - | AThing TcKind
  - | APromotionErr PromotionErr
- type TcId = Id
- data InstInfo a = InstInfo {
  - iSpec :: ClsInst
  - iBinds :: InstBindings a
  }
- iDFunId :: InstInfo a -> DFunId
- pprInstInfoDetails :: OutputableBndr a => InstInfo 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 :: [ExtensionFlag]
  - ib_derived :: Bool
  }
- tcExtendGlobalEnv :: [TyThing] -> TcM r -> TcM r
- tcExtendGlobalEnvImplicit :: [TyThing] -> TcM r -> TcM r
- setGlobalTypeEnv :: TcGblEnv -> TypeEnv -> TcM TcGblEnv
- tcExtendGlobalValEnv :: [Id] -> TcM a -> TcM a
- tcLookupLocatedGlobal :: Located Name -> TcM TyThing
- tcLookupGlobal :: Name -> TcM TyThing
- tcLookupField :: Name -> TcM Id
- tcLookupTyCon :: Name -> TcM TyCon
- tcLookupClass :: Name -> TcM Class
- tcLookupDataCon :: Name -> TcM DataCon
- tcLookupPatSyn :: Name -> TcM PatSyn
- tcLookupConLike :: Name -> TcM ConLike
- tcLookupLocatedGlobalId :: Located Name -> TcM Id
- tcLookupLocatedTyCon :: Located Name -> TcM TyCon
- tcLookupLocatedClass :: Located Name -> TcM Class
- tcLookupAxiom :: Name -> TcM (CoAxiom Branched)
- tcExtendKindEnv :: [(Name, TcKind)] -> TcM r -> TcM r
- tcExtendKindEnv2 :: [(Name, TcTyThing)] -> TcM r -> TcM r
- tcExtendTyVarEnv :: [TyVar] -> TcM r -> TcM r
- tcExtendTyVarEnv2 :: [(Name, TcTyVar)] -> TcM r -> TcM r
- tcExtendLetEnv :: TopLevelFlag -> TopLevelFlag -> [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
- tcExtendIdEnv3 :: [(Name, TcId)] -> TyVarSet -> TcM a -> TcM a
- tcExtendIdBndrs :: [TcIdBinder] -> TcM a -> TcM a
- tcExtendGhciIdEnv :: [TyThing] -> TcM a -> TcM a
- tcLookup :: Name -> TcM TcTyThing
- tcLookupLocated :: Located Name -> TcM TcTyThing
- tcLookupLocalIds :: [Name] -> TcM [TcId]
- tcLookupId :: Name -> TcM Id
- tcLookupTyVar :: Name -> TcM TcTyVar
- tcLookupLcl_maybe :: Name -> TcM (Maybe TcTyThing)
- getScopedTyVarBinds :: TcM [(Name, TcTyVar)]
- getInLocalScope :: TcM (Name -> Bool)
- wrongThingErr :: String -> TcTyThing -> Name -> TcM a
- pprBinders :: [Name] -> SDoc
- tcExtendRecEnv :: [(Name, TyThing)] -> TcM r -> TcM r
- tcLookupInstance :: Class -> [Type] -> TcM ClsInst
- tcGetInstEnvs :: TcM InstEnvs
- tcExtendRules :: [LRuleDecl Id] -> TcM a -> TcM a
- tcGetDefaultTys :: TcM ([Type], (Bool, Bool))
- tcGetGlobalTyVars :: TcM TcTyVarSet
- zapLclTypeEnv :: TcM a -> TcM a
- checkWellStaged :: SDoc -> ThLevel -> ThLevel -> TcM ()
- tcMetaTy :: Name -> TcM Type
- thLevel :: ThStage -> ThLevel
- topIdLvl :: Id -> ThLevel
- isBrackStage :: ThStage -> Bool
- newLocalName :: Name -> TcM Name
- newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name
- newFamInstTyConName :: Located Name -> [Type] -> TcM Name
- newFamInstAxiomName :: SrcSpan -> Name -> [CoAxBranch] -> 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

data TyThing Source

A typecheckable-thing, essentially anything that has a name

Constructors

AnId Id |
AConLike ConLike |
ATyCon TyCon |
ACoAxiom (CoAxiom Branched) |

Instances

Eq TyThing |
Ord TyThing |
Outputable TyThing |
NamedThing TyThing |

data TcTyThing Source

Constructors

AGlobal TyThing |
ATcId |
Fields tct_id :: TcId tct_closed :: TopLevelFlag
ATyVar Name TcTyVar |
AThing TcKind |
APromotionErr PromotionErr |

Instances

Outputable TcTyThing |

type TcId = Id Source

data InstInfo a Source

Constructors

InstInfo |
Fields iSpec :: ClsInst iBinds :: InstBindings a

Instances

OutputableBndr a => Outputable (InstInfo a) |

iDFunId :: InstInfo a -> DFunId Source

pprInstInfoDetails :: OutputableBndr a => InstInfo a -> SDoc Source

simpleInstInfoClsTy :: InstInfo a -> (Class, Type) Source

simpleInstInfoTy :: InstInfo a -> Type Source

simpleInstInfoTyCon :: InstInfo a -> TyCon Source

data InstBindings a Source

Constructors

InstBindings |
Fields ib_tyvars :: [Name] ib_binds :: LHsBinds a ib_pragmas :: [LSig a] ib_extensions :: [ExtensionFlag] ib_derived :: Bool

tcExtendGlobalEnv :: [TyThing] -> 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 :: Located Name -> TcM TyThing Source

tcLookupGlobal :: Name -> TcM TyThing Source

tcLookupField :: Name -> TcM Id 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 :: Located Name -> TcM Id Source

tcLookupLocatedTyCon :: Located Name -> TcM TyCon Source

tcLookupLocatedClass :: Located Name -> TcM Class Source

tcLookupAxiom :: Name -> TcM (CoAxiom Branched) Source

tcExtendKindEnv :: [(Name, TcKind)] -> TcM r -> TcM r Source

tcExtendKindEnv2 :: [(Name, TcTyThing)] -> TcM r -> TcM r Source

tcExtendTyVarEnv :: [TyVar] -> TcM r -> TcM r Source

tcExtendTyVarEnv2 :: [(Name, TcTyVar)] -> TcM r -> TcM r Source

tcExtendLetEnv :: TopLevelFlag -> TopLevelFlag -> [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

tcExtendIdEnv3 :: [(Name, TcId)] -> TyVarSet -> TcM a -> TcM a Source

`tcExtendIdEnv2`, but don't bind the `TcId`s in the `TyVarSet` argument.

tcExtendIdBndrs :: [TcIdBinder] -> TcM a -> TcM a Source

tcExtendGhciIdEnv :: [TyThing] -> TcM a -> TcM a Source

tcLookup :: Name -> TcM TcTyThing Source

tcLookupLocated :: Located Name -> TcM TcTyThing Source

tcLookupLocalIds :: [Name] -> TcM [TcId] Source

tcLookupId :: Name -> TcM Id Source

tcLookupTyVar :: Name -> TcM TcTyVar Source

tcLookupLcl_maybe :: Name -> TcM (Maybe TcTyThing) Source

getScopedTyVarBinds :: TcM [(Name, TcTyVar)] Source

getInLocalScope :: TcM (Name -> Bool) Source

wrongThingErr :: String -> TcTyThing -> Name -> TcM a Source

pprBinders :: [Name] -> SDoc Source

tcExtendRecEnv :: [(Name, TyThing)] -> TcM r -> TcM r Source

tcLookupInstance :: Class -> [Type] -> TcM ClsInst Source

tcGetInstEnvs :: TcM InstEnvs Source

tcExtendRules :: [LRuleDecl Id] -> TcM a -> TcM a Source

tcGetDefaultTys :: TcM ([Type], (Bool, Bool)) Source

tcGetGlobalTyVars :: TcM TcTyVarSet Source

zapLclTypeEnv :: TcM a -> TcM a Source

checkWellStaged :: SDoc -> ThLevel -> ThLevel -> TcM () Source

tcMetaTy :: Name -> TcM Type Source

thLevel :: ThStage -> ThLevel Source

topIdLvl :: Id -> ThLevel Source

isBrackStage :: ThStage -> Bool Source

newLocalName :: Name -> TcM Name Source

newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name Source

newFamInstTyConName :: Located Name -> [Type] -> TcM Name Source

newFamInstAxiomName :: SrcSpan -> Name -> [CoAxBranch] -> TcM Name Source

mkStableIdFromString :: String -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId Source

mkStableIdFromName :: Name -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId Source

mkWrapperName :: (MonadIO m, HasDynFlags m, HasModule m) => String -> String -> m FastString Source