ghc-lib-0.1.0: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

TcHsSyn

Synopsis

Extracting types from HsSyn

hsLitType :: HsLit (GhcPass p) -> TcType Source #

hsLPatType :: OutPat GhcTc -> Type Source #

hsPatType :: Pat GhcTc -> Type Source #

Other HsSyn functions

mkHsDictLet :: TcEvBinds -> LHsExpr GhcTc -> LHsExpr GhcTc #

mkHsApp :: LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) #

mkHsAppTy :: LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) #

mkHsCaseAlt :: LPat (GhcPass p) -> Located (body (GhcPass p)) -> LMatch (GhcPass p) (Located (body (GhcPass p))) #

A simple case alternative with a single pattern, no binds, no guards; pre-typechecking

shortCutLit :: DynFlags -> OverLitVal -> TcType -> Maybe (HsExpr GhcTcId) Source #

hsOverLitName :: OverLitVal -> Name Source #

conLikeResTy :: ConLike -> [Type] -> Type #

Returns the type of the whole pattern

re-exported from TcMonad

type TcId = Id #

type TcIdSet = IdSet #

Zonking

For a description of "zonking", see Note [What is zonking?] in TcMType

zonkTopDecls :: Bag EvBind -> LHsBinds GhcTcId -> [LRuleDecl GhcTcId] -> [LTcSpecPrag] -> [LForeignDecl GhcTcId] -> TcM (TypeEnv, Bag EvBind, LHsBinds GhcTc, [LForeignDecl GhcTc], [LTcSpecPrag], [LRuleDecl GhcTc]) Source #

zonkTopExpr :: HsExpr GhcTcId -> TcM (HsExpr GhcTc) Source #

zonkTopLExpr :: LHsExpr GhcTcId -> TcM (LHsExpr GhcTc) Source #

zonkTopBndrs :: [TcId] -> TcM [Id] Source #

data ZonkEnv Source #

See Note [The ZonkEnv] Confused by zonking? See Note [What is zonking?] in TcMType.

Instances
Instance details

Defined in TcHsSyn

Methods

ppr :: ZonkEnv -> SDoc #

pprPrec :: Rational -> ZonkEnv -> SDoc #

data ZonkFlexi Source #

Constructors

emptyZonkEnv :: TcM ZonkEnv Source #

mkEmptyZonkEnv :: ZonkFlexi -> TcM ZonkEnv Source #

initZonkEnv :: (ZonkEnv -> TcM b) -> TcM b Source #

zonkTyVarBinders :: [VarBndr TcTyVar vis] -> TcM (ZonkEnv, [VarBndr TyVar vis]) Source #

zonkTyVarBindersX :: ZonkEnv -> [VarBndr TcTyVar vis] -> TcM (ZonkEnv, [VarBndr TyVar vis]) Source #

zonkTyVarBinderX :: ZonkEnv -> VarBndr TcTyVar vis -> TcM (ZonkEnv, VarBndr TyVar vis) Source #

zonkTyBndrs :: [TcTyVar] -> TcM (ZonkEnv, [TyVar]) Source #

zonkTyBndrsX :: ZonkEnv -> [TcTyVar] -> TcM (ZonkEnv, [TyVar]) Source #

zonkRecTyVarBndrs :: [Name] -> [TcTyVar] -> TcM (ZonkEnv, [TyVar]) Source #

zonkTcTypeToType :: TcType -> TcM Type Source #

zonkTcTypeToTypeX :: ZonkEnv -> TcType -> TcM Type Source #

zonkTcTypesToTypes :: [TcType] -> TcM [Type] Source #

zonkTcTypesToTypesX :: ZonkEnv -> [TcType] -> TcM [Type] Source #

zonkTyVarOcc :: ZonkEnv -> TyVar -> TcM TcType Source #

zonkCoToCo :: ZonkEnv -> Coercion -> TcM Coercion Source #

zonkEvBinds :: ZonkEnv -> Bag EvBind -> TcM (ZonkEnv, Bag EvBind) Source #

zonkTcEvBinds :: ZonkEnv -> TcEvBinds -> TcM (ZonkEnv, TcEvBinds) Source #

zonkTcMethInfoToMethInfoX :: ZonkEnv -> TcMethInfo -> TcM MethInfo Source #

lookupTyVarOcc :: ZonkEnv -> TcTyVar -> Maybe TyVar Source #

AltStyle によって変換されたページ (->オリジナル) /