[Git][ghc/ghc][wip/sand-witch/tuple-renaming-changelog] Add changelog entry for renaming tuples from (,,...,,) to Tuple<n> (24291)
Andrei Borzenkov (@sand-witch)
gitlab at gitlab.haskell.org
Tue Jan 23 09:26:36 UTC 2024
Andrei Borzenkov pushed to branch wip/sand-witch/tuple-renaming-changelog at Glasgow Haskell Compiler / GHC
Commits:
4d3f6b4b by Andrei Borzenkov at 2024-01-23T13:26:17+04:00
Add changelog entry for renaming tuples from (,,...,,) to Tuple<n> (24291)
- - - - -
3 changed files:
- docs/users_guide/9.8.1-notes.rst
- libraries/base/changelog.md
- libraries/ghc-prim/changelog.md
Changes:
=====================================
docs/users_guide/9.8.1-notes.rst
=====================================
@@ -39,6 +39,26 @@ Language
type instance forall j . F1 Int = Any :: j -> j
+- GHC proposal `#475 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0475-tuple-syntax.rst>`_
+ has been partially implemented. Namely, tuple data types, which were previously represented using a brackets-with-commas
+ syntax form ((), (,), (,,), and so on) have been renamed to common names of the form ``Unit``, ``Tuple2``, ``Tuple3``,
+ and so on, where the number after ``Tuple`` indicates its arity: ::
+
+ data Unit = ()
+
+ data Tuple2 a b = (a,b)
+ data Tuple3 a b c = (a, b, c)
+ -- and so on, up to Tuple64
+
+ For consistency, we also introduce type aliases: ::
+
+ type Tuple0 = Unit
+ type Tuple1 = Solo
+
+ The renamed tuple data types and the new type aliases can be found in the ``GHC.Tuple`` module. This renaming
+ does not break existing code that directly uses tuple data types, but it does affect tools and libraries
+ that have access to the data type names, such as ``Generic`` and Template Haskell.
+
Compiler
~~~~~~~~
=====================================
libraries/base/changelog.md
=====================================
@@ -73,6 +73,7 @@
* Make `Semigroup`'s `stimes` specializable. ([CLC proposal #8](https://github.com/haskell/core-libraries-committee/issues/8))
* Implement `copyBytes`, `fillBytes`, `moveBytes` and `stimes` for `Data.Array.Byte.ByteArray` using primops ([CLC proposal #188](https://github.com/haskell/core-libraries-committee/issues/188))
* Add rewrite rules for conversion between `Int64` / `Word64` and `Float` / `Double` on 64-bit architectures ([CLC proposal #203](https://github.com/haskell/core-libraries-committee/issues/203)).
+ * `Generic` instances for tuples now expose `Unit`, `Tuple2`, `Tuple3`, ..., `Tuple64` as the actual names for tuple type constructors.
## 4.18.0.0 *March 2023*
* Shipped with GHC 9.6.1
=====================================
libraries/ghc-prim/changelog.md
=====================================
@@ -113,6 +113,10 @@
- `Unit`, `Tuple0`, `Tuple1`, `Tuple2`, `Tuple3` and so on (up to `Tuple64`)
are now exported from `GHC.Tuple.Prim` and reexported from `GHC.Tuple`.
+ GHC now uses these as the actual names for tuple data types. As a result,
+ the "brackets with commas" syntax (e.g. `()`, `(,)`, etc.) now becomes just
+ an alias to these names. This change may affect tools and libraries that
+ rely on type names, such as `Generic` and Template Haskell.
## 0.10.0
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4d3f6b4b2f1639ea5654bbaeb973e19c45c92210
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4d3f6b4b2f1639ea5654bbaeb973e19c45c92210
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240123/58a498bb/attachment-0001.html>
More information about the ghc-commits
mailing list