ghc-8.0.0.20160204: 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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c VisibilityFlag) Source

dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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 

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.

pprIfaceForAll :: [IfaceForAllBndr] -> SDoc Source

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

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