cd865e257f371202c6ae0d8749d9b875455c4ccc
[ghc.git] / docs / users_guide / 8.10.1-notes.rst
1 .. _release-8-10-1:
2
3 Release notes for version 8.10.1
4 ===============================
5
6 The significant changes to the various parts of the compiler are listed in the
7 following sections.
8
9
10 Highlights
11 ----------
12
13 Full details
14 ------------
15
16 Language
17 ~~~~~~~~
18
19 - Kind variables are no longer implicitly quantified when an explicit ``forall`` is used, see
20   `GHC proposal #24
21   <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0024-no-kind-vars.rst>`__.
22   :ghc-flag:`-Wimplicit-kind-vars` is now obsolete.
23
24 - Kind variables are no longer implicitly quantified in constructor declarations: ::
25
26     data T a        = T1 (S (a :: k) | forall (b::k). T2 (S b)  -- no longer accepted
27     data T (a :: k) = T1 (S (a :: k) | forall (b::k). T2 (S b)  -- still accepted
28
29 - Implicitly quantified kind variables are no longer put in front of other variables: ::
30
31     f :: Proxy (a :: k) -> Proxy (b :: j)
32
33     ghci> :t +v f   -- old order:
34     f :: forall k j (a :: k) (b :: j). Proxy a -> Proxy b
35
36     ghci> :t +v f   -- new order:
37     f :: forall k (a :: k) j (b :: j). Proxy a -> Proxy b
38
39   This is a breaking change for users of :extension:`TypeApplications`.
40
41 - In type synonyms and type family equations, free variables on the RHS are no longer
42   implicitly quantified unless used in an outermost kind annotation: ::
43
44     type T = Just (Nothing :: Maybe a)         -- no longer accepted
45     type T = Just Nothing :: Maybe (Maybe a)   -- still accepted
46
47 - GHC now parses visible, dependent quantifiers (as proposed in
48   `GHC proposal 35
49   <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0035-forall-arrow.rst>`__),
50   such as the following: ::
51
52     data Proxy :: forall k -> k -> Type
53
54   See the `section on explicit kind quantification
55   <#explicit-kind-quantification>`__ for more details.
56
57 Compiler
58 ~~~~~~~~
59
60 - Add new flags :ghc-flag:`-Wunused-record-wildcards` and
61   :ghc-flag:`-Wredundant-record-wildcards`  which warn users when they have
62   redundant or unused uses of a record wildcard match.
63
64 Runtime system
65 ~~~~~~~~~~~~~~
66
67 Template Haskell
68 ~~~~~~~~~~~~~~~~
69
70 ``ghc-prim`` library
71 ~~~~~~~~~~~~~~~~~~~~
72
73 ``ghc`` library
74 ~~~~~~~~~~~~~~~
75
76 ``base`` library
77 ~~~~~~~~~~~~~~~~
78
79 Build system
80 ~~~~~~~~~~~~
81
82 Included libraries
83 ------------------