ghc-8.0.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

IfaceType

Synopsis

Documentation

data VisibilityFlag Source #

Is something required to appear in source Haskell (Visible), permitted by request (Specified) (visible type application), or prohibited entirely from appearing in source Haskell (Invisible)? Examples in Note [VisibilityFlag]

Constructors

Visible 
Specified 
Invisible 

Instances

Eq VisibilityFlag # 
Data VisibilityFlag # 

Methods

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

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

toConstr :: VisibilityFlag -> Constr Source #

dataTypeOf :: VisibilityFlag -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Outputable VisibilityFlag # 
Binary VisibilityFlag # 

ifTyConBinderTyVar :: IfaceTyConBinder -> IfaceTvBndr Source #

Extract a IfaceTvBndr from a IfaceTyConBinder

ifTyConBinderName :: IfaceTyConBinder -> IfLclName Source #

Extract the variable name from a IfaceTyConBinder

eqIfaceTvBndrs :: IfRnEnv2 -> [IfaceTvBndr] -> [IfaceTvBndr] -> Maybe IfRnEnv2 Source #

Similar to eqTyVarBndrs, checks that tyvar lists are the same length and have matching kinds; if so, extend the IfRnEnv2. Returns Nothing if they don't match.

zipIfaceBinders :: [TyVar] -> [TyBinder] -> [IfaceTyConBinder] Source #

Zip together tidied tyConTyVars with tyConBinders to make IfaceTyConBinders

toDegenerateBinders :: [TyBinder] -> [IfaceTyConBinder] Source #

Make IfaceTyConBinders without tyConTyVars. Used for pretty-printing only

pprIfaceForAll :: [IfaceForAllBndr] -> SDoc Source #

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

substIfaceType :: IfaceTySubst -> IfaceType -> IfaceType Source #

mkIfaceTySubst :: [IfaceTvBndr] -> [IfaceType] -> IfaceTySubst Source #