ghc-8.0.2: The GHC API

Safe Haskell | None
Language | Haskell2010

TcHsSyn

Contents

- Validity checking

Synopsis

- mkHsConApp :: DataCon -> [Type] -> [HsExpr Id] -> LHsExpr Id
- mkHsDictLet :: TcEvBinds -> LHsExpr Id -> LHsExpr Id
- mkHsApp :: LHsExpr name -> LHsExpr name -> LHsExpr name
- hsLitType :: HsLit -> TcType
- hsLPatType :: OutPat Id -> Type
- hsPatType :: Pat Id -> Type
- mkHsAppTy :: LHsType name -> LHsType name -> LHsType name
- mkSimpleHsAlt :: LPat id -> Located (body id) -> LMatch id (Located (body id))
- nlHsIntLit :: Integer -> LHsExpr id
- shortCutLit :: DynFlags -> OverLitVal -> TcType -> Maybe (HsExpr TcId)
- hsOverLitName :: OverLitVal -> Name
- conLikeResTy :: ConLike -> [Type] -> Type
- type TcId = Id
- type TcIdSet = IdSet
- zonkTopDecls :: Bag EvBind -> LHsBinds TcId -> [LRuleDecl TcId] -> [LVectDecl TcId] -> [LTcSpecPrag] -> [LForeignDecl TcId] -> TcM ([Id], Bag EvBind, LHsBinds Id, [LForeignDecl Id], [LTcSpecPrag], [LRuleDecl Id], [LVectDecl Id])
- zonkTopExpr :: HsExpr TcId -> TcM (HsExpr Id)
- zonkTopLExpr :: LHsExpr TcId -> TcM (LHsExpr Id)
- zonkTopBndrs :: [TcId] -> TcM [Id]
- zonkTyBndrsX :: ZonkEnv -> [TyVar] -> TcM (ZonkEnv, [TyVar])
- zonkTyBinders :: ZonkEnv -> [TcTyBinder] -> TcM (ZonkEnv, [TyBinder])
- emptyZonkEnv :: ZonkEnv
- mkEmptyZonkEnv :: UnboundTyVarZonker -> ZonkEnv
- zonkTcTypeToType :: ZonkEnv -> TcType -> TcM Type
- zonkTcTypeToTypes :: ZonkEnv -> [TcType] -> TcM [Type]
- zonkTyVarOcc :: ZonkEnv -> TyVar -> TcM TcType
- zonkCoToCo :: ZonkEnv -> Coercion -> TcM Coercion
- zonkTcKindToKind :: [TcTyBinder] -> TcKind -> TcM ([TyBinder], Kind)
- zonkEvBinds :: ZonkEnv -> Bag EvBind -> TcM (ZonkEnv, Bag EvBind)
- checkForRepresentationPolymorphism :: SDoc -> Type -> TcM ()

# Documentation

mkHsConApp :: DataCon -> [Type] -> [HsExpr Id] -> LHsExpr Id Source #

mkHsDictLet :: TcEvBinds -> LHsExpr Id -> LHsExpr Id Source #

mkHsApp :: LHsExpr name -> LHsExpr name -> LHsExpr name Source #

hsLitType :: HsLit -> TcType Source #

hsLPatType :: OutPat Id -> Type Source #

hsPatType :: Pat Id -> Type Source #

mkHsAppTy :: LHsType name -> LHsType name -> LHsType name Source #

mkSimpleHsAlt :: LPat id -> Located (body id) -> LMatch id (Located (body id)) Source #

nlHsIntLit :: Integer -> LHsExpr id Source #

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

hsOverLitName :: OverLitVal -> Name Source #

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

Returns the type of the whole pattern

type TcId = Id Source #

type TcIdSet = IdSet Source #

zonkTopDecls :: Bag EvBind -> LHsBinds TcId -> [LRuleDecl TcId] -> [LVectDecl TcId] -> [LTcSpecPrag] -> [LForeignDecl TcId] -> TcM ([Id], Bag EvBind, LHsBinds Id, [LForeignDecl Id], [LTcSpecPrag], [LRuleDecl Id], [LVectDecl Id]) Source #

zonkTopExpr :: HsExpr TcId -> TcM (HsExpr Id) Source #

zonkTopLExpr :: LHsExpr TcId -> TcM (LHsExpr Id) Source #

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

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

zonkTyBinders :: ZonkEnv -> [TcTyBinder] -> TcM (ZonkEnv, [TyBinder]) Source #

emptyZonkEnv :: ZonkEnv Source #

mkEmptyZonkEnv :: UnboundTyVarZonker -> ZonkEnv Source #

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

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

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

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

zonkTcKindToKind :: [TcTyBinder] -> TcKind -> TcM ([TyBinder], Kind) Source #

Used during kind-checking in TcTyClsDecls, where it's more convenient to keep the binders and result kind separate.

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

# Validity checking

checkForRepresentationPolymorphism :: SDoc -> Type -> TcM () Source #