Safe Haskell | None |
---|---|
Language | GHC2021 |
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
pattern Specified :: ForAllTyFlag | |
pattern Inferred :: ForAllTyFlag |
Instances
data Specificity Source #
Whether an Invisible
argument may appear in source Haskell.
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