ghc-7.8.3: The GHC API

Safe HaskellNone
LanguageHaskell98

HsTypes

Synopsis

Documentation

type LHsType name = Located (HsType name)

type HsKind name = HsType name

type LHsKind name = Located (HsKind name)

data HsTyVarBndr name

Constructors

UserTyVar name 
KindedTyVar name (LHsKind name) 

Instances

Data name => Data (HsTyVarBndr name) 
OutputableBndr name => Outputable (HsTyVarBndr name) 
Typeable (* -> *) HsTyVarBndr 

type LHsTyVarBndr name = Located (HsTyVarBndr name)

data LHsTyVarBndrs name

Constructors

HsQTvs 

Fields

hsq_kvs :: [Name]
 
hsq_tvs :: [LHsTyVarBndr name]
 

Instances

data HsWithBndrs thing

Constructors

HsWB 

Fields

hswb_cts :: thing
 
hswb_kvs :: [Name]
 
hswb_tvs :: [Name]
 

Instances

Data thing => Data (HsWithBndrs thing) 
Outputable thing => Outputable (HsWithBndrs thing) 
Typeable (* -> *) HsWithBndrs 

type HsContext name = [LHsType name]

type LHsContext name = Located (HsContext name)

data HsQuasiQuote id

Instances

data HsTyWrapper

Constructors

WpKiApps [Kind] 

newtype HsIPName

These names are used eary on to store the names of implicit parameters. They completely disappear after type-checking.

Constructors

HsIPName FastString 

type LBangType name = Located (BangType name)

type BangType name = HsType name

data ConDeclField name

Instances

Data name => Data (ConDeclField name) 
Typeable (* -> *) ConDeclField 

hsTyVarName :: HsTyVarBndr name -> name

mkHsWithBndrs :: thing -> HsWithBndrs thing

hsLTyVarName :: LHsTyVarBndr name -> name

hsLTyVarNames :: LHsTyVarBndrs name -> [name]

splitHsClassTy_maybe :: HsType name -> Maybe (name, [LHsType name])

splitHsAppTys :: LHsType n -> [LHsType n] -> (LHsType n, [LHsType n])

mkHsOpTy :: LHsType name -> Located name -> LHsType name -> HsType name