| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Language.Haskell.Syntax.Specificity
Contents
Synopsis
- data ForAllTyFlag where
- Invisible !Specificity
- Required
- pattern Specified :: ForAllTyFlag
- pattern Inferred :: ForAllTyFlag
- data Specificity
- isVisibleForAllTyFlag :: ForAllTyFlag -> Bool
- isInvisibleForAllTyFlag :: ForAllTyFlag -> Bool
- isInferredForAllTyFlag :: ForAllTyFlag -> Bool
- isSpecifiedForAllTyFlag :: ForAllTyFlag -> Bool
- coreTyLamForAllTyFlag :: ForAllTyFlag
ForAllTyFlags
data ForAllTyFlag Source #
ForAllTyFlag
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 [VarBndrs, ForAllTyBinders, TyConBinders, and visibility] in GHC.Core.TyCo.Rep
Constructors
| Invisible !Specificity | |
| Required |
Bundled Patterns
| pattern Specified :: ForAllTyFlag | |
| pattern Inferred :: ForAllTyFlag |
Instances
data Specificity Source #
Whether an Invisible argument may appear in source Haskell.
Constructors
| InferredSpec | the argument may not appear in source Haskell, it is only inferred. |
| SpecifiedSpec | the argument may appear in source Haskell, but isn't required. |
Instances
| NFData Specificity | |
Defined in GHC.Hs.Specificity Methods rnf :: Specificity -> () | |
| Data Specificity Source # | |
Defined in Language.Haskell.Syntax.Specificity Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Specificity -> c Specificity gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Specificity toConstr :: Specificity -> Constr dataTypeOf :: Specificity -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Specificity) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Specificity) gmapT :: (forall b. Data b => b -> b) -> Specificity -> Specificity gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r gmapQ :: (forall d. Data d => d -> u) -> Specificity -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Specificity -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity | |
| Binary Specificity Source # | |
Defined in GHC.Hs.Specificity Methods put_ :: WriteBinHandle -> Specificity -> IO () Source # put :: WriteBinHandle -> Specificity -> IO (Bin Specificity) Source # get :: ReadBinHandle -> IO Specificity Source # | |
| Eq Specificity Source # | |
Defined in Language.Haskell.Syntax.Specificity | |
| Ord Specificity Source # | |
Defined in Language.Haskell.Syntax.Specificity Methods compare :: Specificity -> Specificity -> Ordering # (<) :: Specificity -> Specificity -> Bool # (<=) :: Specificity -> Specificity -> Bool # (>) :: Specificity -> Specificity -> Bool # (>=) :: Specificity -> Specificity -> Bool # max :: Specificity -> Specificity -> Specificity # min :: Specificity -> Specificity -> Specificity # | |
| OutputableBndrFlag Specificity p Source # | |
Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr Specificity (GhcPass p) -> SDoc | |
| Outputable tv => Outputable (VarBndr tv Specificity) Source # | |
Defined in GHC.Types.Var | |
isVisibleForAllTyFlag :: ForAllTyFlag -> Bool Source #
Does this ForAllTyFlag classify an argument that is written in Haskell?
isInvisibleForAllTyFlag :: ForAllTyFlag -> Bool Source #
Does this ForAllTyFlag classify an argument that is not written in Haskell?
coreTyLamForAllTyFlag :: ForAllTyFlag Source #
The ForAllTyFlag on a (Lam a e) term, where a is a type variable.
If you want other ForAllTyFlag, use a cast.
See Note [Required foralls in Core] in GHC.Core.TyCo.Rep