summaryrefslogtreecommitdiff
path: root/docs/users_guide/8.10.1-notes.rst
blob: cfe07deb816edfdf94a0750e1bbe919da8ede492 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.. _release-8-10-1:

Release notes for version 8.10.1
===============================

The significant changes to the various parts of the compiler are listed in the
following sections.


Highlights
----------

Full details
------------

Language
~~~~~~~~

- Kind variables are no longer implicitly quantified when an explicit ``forall`` is used, see
  `GHC proposal #24
  <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0024-no-kind-vars.rst>`__.
  :ghc-flag:`-Wimplicit-kind-vars` is now obsolete.

- Kind variables are no longer implicitly quantified in constructor declarations: ::

    data T a        = T1 (S (a :: k) | forall (b::k). T2 (S b)  -- no longer accepted
    data T (a :: k) = T1 (S (a :: k) | forall (b::k). T2 (S b)  -- still accepted

- Implicitly quantified kind variables are no longer put in front of other variables: ::

    f :: Proxy (a :: k) -> Proxy (b :: j)

    ghci> :t +v f   -- old order:
    f :: forall k j (a :: k) (b :: j). Proxy a -> Proxy b

    ghci> :t +v f   -- new order:
    f :: forall k (a :: k) j (b :: j). Proxy a -> Proxy b

  This is a breaking change for users of :extension:`TypeApplications`.

- In type synonyms and type family equations, free variables on the RHS are no longer
  implicitly quantified unless used in an outermost kind annotation: ::

    type T = Just (Nothing :: Maybe a)         -- no longer accepted
    type T = Just Nothing :: Maybe (Maybe a)   -- still accepted

Compiler
~~~~~~~~

- Add new flags :ghc-flag:`-Wunused-record-wildcards` and
  :ghc-flag:`-Wredundant-record-wildcards`  which warn users when they have
  redundant or unused uses of a record wildcard match.

Runtime system
~~~~~~~~~~~~~~

Template Haskell
~~~~~~~~~~~~~~~~

``ghc-prim`` library
~~~~~~~~~~~~~~~~~~~~

``ghc`` library
~~~~~~~~~~~~~~~

``base`` library
~~~~~~~~~~~~~~~~

Build system
~~~~~~~~~~~~

Included libraries
------------------