diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2019-05-04 11:05:20 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-05-08 01:55:45 -0400 |
commit | 786e665b8dac5430c02089b39f7cb7572a5254d8 (patch) | |
tree | 86483a87f6b36c278be5e42e50262cf046eee546 | |
parent | f58ea556538c048b05607be869feb677b1083175 (diff) | |
download | haskell-786e665b8dac5430c02089b39f7cb7572a5254d8.tar.gz |
Fix #16603 by documenting some important changes in changelogs
This addresses some glaring omissions from
`libraries/base/changelog.md` and
`docs/users_guide/8.8.1-notes.rst`, fixing #16603 in the process.
-rw-r--r-- | docs/users_guide/8.8.1-notes.rst | 43 | ||||
-rw-r--r-- | libraries/base/changelog.md | 8 |
2 files changed, 51 insertions, 0 deletions
diff --git a/docs/users_guide/8.8.1-notes.rst b/docs/users_guide/8.8.1-notes.rst index 486c47c1b3..a781ec4181 100644 --- a/docs/users_guide/8.8.1-notes.rst +++ b/docs/users_guide/8.8.1-notes.rst @@ -23,6 +23,21 @@ Full details Language ~~~~~~~~ +- GHC now supports visible kind applications, as described in + `GHC proposal #15 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0015-type-level-type-applications.rst>`__. This extends the existing + :ref:`visible type applications <visible-type-application>` feature to permit + type applications at the type level (e.g., ``f :: Proxy ('Just @Bool 'True)``) in + addition to the term level (e.g., ``g = Just @Bool True``). + +- GHC now allows explicitly binding type variables in type family instances and + rewrite rules, as described in + `GHC proposal #7 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0007-instance-foralls.rst>`__. For instance: :: + + type family G a b where + forall x y. G [x] (Proxy y) = Double + forall z. G z z = Bool + {-# RULES "example" forall a. forall (x :: a). id x = x #-} + - :extension:`ScopedTypeVariables`: The type variable that a type signature on a pattern can bring into scope can now stand for arbitrary types. Previously, they could only stand in for other type variables, but this restriction was deemed @@ -76,6 +91,13 @@ Language Compiler ~~~~~~~~ +- The final phase of the ``MonadFail`` proposal has been implemented. + Accordingly, the ``MonadFailDesugaring`` language extension is now + deprecated, as its effects are always enabled. Similarly, the + ``-Wnoncanonical-monadfail-instances`` flag is also deprecated, as there is + no longer any way to define a "non-canonical" ``Monad`` or ``MonadFail`` + instance. + - New :ghc-flag:`-keep-hscpp-files` to keep the output of the CPP pre-processor. - The :ghc-flag:`-Wcompat` warning group now includes :ghc-flag:`-Wstar-is-type`. @@ -143,6 +165,13 @@ Template Haskell longer included when reifying ``C``. It's possible that this may break some code which assumes the existence of ``forall a. C a =>``. +- Template Haskell has been updated to support visible kind applications and + explicit ``foralls`` in type family instances and ``RULES``. These required + a couple of backwards-incompatible changes to the ``template-haskell`` API. + Please refer to the + `GHC 8.8 Migration Guide <https://gitlab.haskell.org/ghc/ghc/wikis/migration/8.8#template-haskell-21500>`__ + for more details. + - Template Haskell now supports implicit parameters and recursive do. ``ghc-prim`` library @@ -164,6 +193,20 @@ Template Haskell ``base`` library ~~~~~~~~~~~~~~~~ +- The final phase of the ``MonadFail`` proposal has been implemented. As a + result of this change: + + - The ``fail`` method of ``Monad`` has been removed in favor of the method of + the same name in the ``MonadFail`` class. + + - ``MonadFail(fail)`` is now re-exported from the ``Prelude`` and + ``Control.Monad`` modules. + + These are breaking changes that may require you to update your code. Please + refer to the + `GHC 8.8 Migration Guide <https://gitlab.haskell.org/ghc/ghc/wikis/migration/8.8#base-41300>`__ + for more details. + - Support the characters from recent versions of Unicode (up to v. 12) in literals (see :ghc-ticket:`5518`). diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index 1e4bfd3f04..6da0c70b36 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -8,6 +8,14 @@ ## 4.13.0.0 *TBA* * Bundled with GHC *TBA* + * The final phase of the `MonadFail` proposal has been implemented: + + * The `fail` method of `Monad` has been removed in favor of the method of + the same name in the `MonadFail` class. + + * `MonadFail(fail)` is now re-exported from the `Prelude` and + `Control.Monad` modules. + * Fix `Show` instance of `Data.Fixed`: Negative numbers are now parenthesized according to their surrounding context. I.e. `Data.Fixed.show` produces syntactically correct Haskell for expressions like `Just (-1 :: Fixed E2)`. |