Use of "forall" as an identifier [GHC64088]
Flag: Wforallidentifier
Enabled by default
The string “forall” is not a keyword in the Haskell 2010 standard.
It is therefore possible to declare a toplevel function in Haskell 2010 which uses forall
as a name.
As a result of the accepted GHC proposal 281 the string "forall"
will become a reserved keyword in a future version of GHC, so GHC warns against the use of forall
as an identifier.
Examples
The identifier "forall" should not be used
In this example the programmer implemented a function which checks whether all elements of a list satisfy a given predicate. The programmer has chosen the sensible name “forall” for this function, but this name will become a reserved keyword in a future version of GHC. The function should therefore be renamed, for example to the name “forAll”.
ForallIdentifier.hs:4:1: warning: [GHC64088] [Wforallidentifier]
The use of ‘forall’ as an identifier
will become an error in a future GHC release.
Suggested fix:
Consider using another name, such as
‘forAll’, ‘for_all’, or ‘forall_’.

4  forall f ls = and (fmap f ls)
 ^^^^^^
ForallIdentifier.hs
module ForallIdentifier where
forall :: (a > Bool) > [a] > Bool
forall f ls = and (map f ls)
module ForallIdentifier where
forAll :: (a > Bool) > [a] > Bool
forAll f ls = and (fmap f ls)