TcEnv

ghc-7.0.4: The GHC API

TcEnv

Synopsis

- data TyThing
  - = AnId Id
  - | ADataCon DataCon
  - | ATyCon TyCon
  - | AClass Class
- data TcTyThing
  - = AGlobal TyThing
  - | ATcId {
    - tct_id :: TcId
    - tct_level :: ThLevel
    }
  - | ATyVar Name TcType
  - | AThing TcKind
- type TcId = Id
- data InstInfo a = InstInfo {
  - iSpec :: Instance
  - iBinds :: InstBindings a
  }
- iDFunId :: InstInfo a -> DFunId
- pprInstInfo :: InstInfo a -> SDoc
- pprInstInfoDetails :: OutputableBndr a => InstInfo a -> SDoc
- simpleInstInfoClsTy :: InstInfo a -> (Class, Type)
- simpleInstInfoTy :: InstInfo a -> Type
- simpleInstInfoTyCon :: InstInfo a -> TyCon
- data InstBindings a
  - = VanillaInst (LHsBinds a) [LSig a] Bool
  - | NewTypeDerived CoercionI TyCon
- tcExtendGlobalEnv :: [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
- tcLookupLocatedGlobalId :: Located Name -> TcM Id
- tcLookupLocatedTyCon :: Located Name -> TcM TyCon
- tcLookupLocatedClass :: Located Name -> TcM Class
- tcLookupFamInst :: TyCon -> [Type] -> TcM (Maybe (TyCon, [Type]))
- tcLookupDataFamInst :: TyCon -> [Type] -> TcM (TyCon, [Type])
- tcExtendKindEnv :: [(Name, TcKind)] -> TcM r -> TcM r
- tcExtendKindEnvTvs :: [LHsTyVarBndr Name] -> ([LHsTyVarBndr Name] -> TcM r) -> TcM r
- tcExtendTyVarEnv :: [TyVar] -> TcM r -> TcM r
- tcExtendTyVarEnv2 :: [(Name, TcType)] -> TcM r -> TcM r
- tcExtendGhciEnv :: [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
- tcLookup :: Name -> TcM TcTyThing
- tcLookupLocated :: Located Name -> TcM TcTyThing
- tcLookupLocalIds :: [Name] -> TcM [TcId]
- tcLookupId :: Name -> TcM Id
- tcLookupTyVar :: Name -> TcM TcTyVar
- getScopedTyVarBinds :: TcM [(Name, TcType)]
- getInLocalScope :: TcM (Name -> Bool)
- wrongThingErr :: String -> TcTyThing -> Name -> TcM a
- pprBinders :: [Name] -> SDoc
- tcExtendRecEnv :: [(Name, TyThing)] -> TcM r -> TcM r
- tcExtendRules :: [LRuleDecl Id] -> TcM a -> TcM a
- tcGetDefaultTys :: Bool -> TcM ([Type], (Bool, Bool))
- tcGetGlobalTyVars :: TcM TcTyVarSet
- checkWellStaged :: SDoc -> ThLevel -> ThLevel -> TcM ()
- tcMetaTy :: Name -> TcM Type
- thLevel :: ThStage -> ThLevel
- topIdLvl :: Id -> ThLevel
- thTopLevelId :: Id -> Bool
- thRnBrack :: ThStage
- isBrackStage :: ThStage -> Bool
- newLocalName :: Name -> TcRnIf gbl lcl Name
- newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name
- newFamInstTyConName :: Name -> [Type] -> SrcSpan -> TcM Name
- mkStableIdFromString :: String -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId
- mkStableIdFromName :: Name -> Type -> SrcSpan -> (OccName -> OccName) -> TcM TcId

# Documentation

data TyThing

A typecheckable-thing, essentially anything that has a name

Constructors

AnId Id |
ADataCon DataCon |
ATyCon TyCon |
AClass Class |

Instances

Outputable TyThing |
NamedThing TyThing |

data TcTyThing

Constructors

AGlobal TyThing |
ATcId |
Fields tct_id :: TcId tct_level :: ThLevel
ATyVar Name TcType |
AThing TcKind |

Instances

Outputable TcTyThing |

type TcId = Id

data InstInfo a

Constructors

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

iDFunId :: InstInfo a -> DFunId

pprInstInfo :: InstInfo a -> SDoc

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

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

simpleInstInfoTy :: InstInfo a -> Type

simpleInstInfoTyCon :: InstInfo a -> TyCon

data InstBindings a

Constructors

VanillaInst (LHsBinds a) [LSig a] Bool |
NewTypeDerived CoercionI TyCon |

tcExtendGlobalEnv :: [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

tcLookupLocatedGlobalId :: Located Name -> TcM Id

tcLookupLocatedTyCon :: Located Name -> TcM TyCon

tcLookupLocatedClass :: Located Name -> TcM Class

tcLookupFamInst :: TyCon -> [Type] -> TcM (Maybe (TyCon, [Type]))

tcLookupDataFamInst :: TyCon -> [Type] -> TcM (TyCon, [Type])

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

tcExtendKindEnvTvs :: [LHsTyVarBndr Name] -> ([LHsTyVarBndr Name] -> TcM r) -> TcM r

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

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

tcExtendGhciEnv :: [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

tcLookup :: Name -> TcM TcTyThing

tcLookupLocated :: Located Name -> TcM TcTyThing

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

tcLookupId :: Name -> TcM Id

tcLookupTyVar :: Name -> TcM TcTyVar

getScopedTyVarBinds :: TcM [(Name, TcType)]

getInLocalScope :: TcM (Name -> Bool)

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

pprBinders :: [Name] -> SDoc

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

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

tcGetDefaultTys :: Bool -> TcM ([Type], (Bool, Bool))

tcGetGlobalTyVars :: TcM TcTyVarSet

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

tcMetaTy :: Name -> TcM Type

thLevel :: ThStage -> ThLevel

topIdLvl :: Id -> ThLevel

thTopLevelId :: Id -> Bool

thRnBrack :: ThStage

isBrackStage :: ThStage -> Bool

newLocalName :: Name -> TcRnIf gbl lcl Name

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

newFamInstTyConName :: Name -> [Type] -> SrcSpan -> TcM Name

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

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