| 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
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