diff options
author | Vladislav Zavialov <vlad.z.4096@gmail.com> | 2019-02-22 16:51:48 +0300 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-02-23 22:14:19 -0500 |
commit | ae7d1ff62f61e2ded772d4c58cda3c130bbdcf78 (patch) | |
tree | 6d5466a0aef0398bbb67f7fb133b000358d23b49 | |
parent | 88970187779166abd9c13b6e48430bfccc9ee880 (diff) | |
download | haskell-ae7d1ff62f61e2ded772d4c58cda3c130bbdcf78.tar.gz |
User's Guide: forall is a keyword nowadays
-rw-r--r-- | docs/users_guide/bugs.rst | 7 | ||||
-rw-r--r-- | docs/users_guide/glasgow_exts.rst | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/docs/users_guide/bugs.rst b/docs/users_guide/bugs.rst index 96cdd25f5a..c563083cd6 100644 --- a/docs/users_guide/bugs.rst +++ b/docs/users_guide/bugs.rst @@ -42,6 +42,13 @@ Lexical syntax as a single qualified operator rather than the two lexemes ``M`` and ``.\``. +- ``forall`` is always a reserved keyword at the type level, contrary + to the Haskell Report, which allows type variables to be named ``forall``. + Note that this does not imply that GHC always enables the + :ghc-flag:`-XExplicitForAll` extension. Even without this extension enabled, + reserving ``forall`` as a keyword has significance. For instance, GHC will + not parse the type signature ``foo :: forall x``. + .. _infelicities-syntax: Context-free syntax diff --git a/docs/users_guide/glasgow_exts.rst b/docs/users_guide/glasgow_exts.rst index c8afa44cdc..eae0283f6c 100644 --- a/docs/users_guide/glasgow_exts.rst +++ b/docs/users_guide/glasgow_exts.rst @@ -2236,9 +2236,10 @@ The following syntax is stolen: .. index:: single: forall - Stolen (in types) by: :extension:`ExplicitForAll`, and hence by - :extension:`ScopedTypeVariables`, :extension:`LiberalTypeSynonyms`, - :extension:`RankNTypes`, :extension:`ExistentialQuantification` + Stolen (in types) by default (see :ref:`infelicities-lexical`). ``forall`` is + a reserved keyword and never a type variable, in accordance with `GHC Proposal #43 + <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0043-forall-keyword.rst>`__. + ``mdo`` .. index:: @@ -10105,9 +10106,6 @@ in :ref:`data-instance-declarations`, :ref:`type-instance-declarations`, Notes: -- With :extension:`ExplicitForAll`, ``forall`` becomes a keyword; you can't use ``forall`` as a - type variable any more! - - As well in type signatures, you can also use an explicit ``forall`` in an instance declaration: :: |