ghc-8.4.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

IfaceType

Synopsis

Documentation

data IfaceTyCon #

Instances
Eq IfaceTyCon # 
Instance details

Defined in IfaceType

Outputable IfaceTyCon # 
Instance details

Defined in IfaceType

Binary IfaceTyCon # 
Instance details

Defined in IfaceType

data IfaceTyConSort #

The various types of TyCons which have special, built-in syntax.

Constructors

IfaceNormalTyCon

a regular tycon

IfaceTupleTyCon !Arity !TupleSort

e.g. (a, b, c) or (). The arity is the tuple width, not the tycon arity (which is twice the width in the case of unboxed tuples).

IfaceSumTyCon !Arity

e.g. (a | b | c)

IfaceEqualityTyCon

A heterogeneous equality TyCon (i.e. eqPrimTyCon, eqReprPrimTyCon, heqTyCon) that is actually being applied to two types of the same kind. This affects pretty-printing only: see Note [Equality predicates in IfaceType]

Instances
Eq IfaceTyConSort # 
Instance details

Defined in IfaceType

Binary IfaceTyConSort # 
Instance details

Defined in IfaceType

data IsPromoted #

Is a TyCon a promoted data constructor or just a normal type constructor?

Constructors

IsNotPromoted 
IsPromoted 
Instances
Eq IsPromoted # 
Instance details

Defined in IfaceType

Binary IsPromoted # 
Instance details

Defined in IfaceType

data IfaceTyLit #

Instances
Eq IfaceTyLit # 
Instance details

Defined in IfaceType

Outputable IfaceTyLit # 
Instance details

Defined in IfaceType

Binary IfaceTyLit # 
Instance details

Defined in IfaceType

data IfaceBndr #

Instances
Outputable IfaceBndr # 
Instance details

Defined in IfaceType

Binary IfaceBndr # 
Instance details

Defined in IfaceType

data IfaceOneShot #

Instances
Binary IfaceOneShot # 
Instance details

Defined in IfaceType

data ArgFlag #

Argument Flag

Is something required to appear in source Haskell (Required), permitted by request (Specified) (visible type application), or prohibited entirely from appearing in source Haskell (Inferred)? See Note [TyVarBndrs, TyVarBinders, TyConBinders, and visibility] in TyCoRep

Constructors

Required 
Specified 
Inferred 
Instances
Eq ArgFlag # 
Instance details

Defined in Var

Methods

(==) :: ArgFlag -> ArgFlag -> Bool #

(/=) :: ArgFlag -> ArgFlag -> Bool #

Data ArgFlag # 
Instance details

Defined in Var

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArgFlag -> c ArgFlag Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArgFlag Source #

toConstr :: ArgFlag -> Constr Source #

dataTypeOf :: ArgFlag -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArgFlag) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArgFlag) Source #

gmapT :: (forall b. Data b => b -> b) -> ArgFlag -> ArgFlag Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArgFlag -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArgFlag -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ArgFlag -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ArgFlag -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ArgFlag -> m ArgFlag Source #

Outputable ArgFlag # 
Instance details

Defined in Var

Methods

ppr :: ArgFlag -> SDoc #

pprPrec :: Rational -> ArgFlag -> SDoc #

Binary ArgFlag # 
Instance details

Defined in Var

Outputable tv => Outputable (TyVarBndr tv ArgFlag) # 
Instance details

Defined in Var

data ShowForAllFlag #

Show forall flag

Unconditionally show the forall quantifier with (ShowForAllMust) or when (ShowForAllWhen) the names used are free in the binder or when compiling with -fprint-explicit-foralls.

ifForAllBndrName :: IfaceForAllBndr -> IfLclName #

Extract the variable name from an IfaceForAllBndr.

ifTyConBinderName :: IfaceTyConBinder -> IfLclName #

Extract the variable name from an IfaceTyConBinder.

pprIfaceContext :: TyPrec -> [IfacePredType] -> SDoc #

Prints a context or () if empty You give it the context precedence

pprIfaceContextArr :: [IfacePredType] -> SDoc #

Prints "(C a, D b) =>", including the arrow. Used when we want to print a context in a type, so we use FunPrec to decide whether to parenthesise a singleton predicate; e.g. Num a => a -> a

pprIfaceForAllPartMust :: [IfaceForAllBndr] -> [IfacePredType] -> SDoc -> SDoc #

Like pprIfaceForAllPart, but always uses an explicit forall.

pprIfaceForAll :: [IfaceForAllBndr] -> SDoc #

Render the "forall ... ." or "forall ... ->" bit of a type.

mkIfaceTySubst :: [(IfLclName, IfaceType)] -> IfaceTySubst #

substIfaceTyVar :: IfaceTySubst -> IfLclName -> IfaceType #

inDomIfaceTySubst :: IfaceTySubst -> IfaceTvBndr -> Bool #