summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Feuer <david.feuer@gmail.com>2018-02-12 20:01:56 -0500
committerDavid Feuer <David.Feuer@gmail.com>2018-02-12 20:01:57 -0500
commitc9a88db3ac4f1c3e97e3492ebe076f2df6463540 (patch)
treeaf4cbdabd0f62b490c21b7a4bd38440221ba4dff
parent583f561c285d1742b7e73128fd3331a49b87ec75 (diff)
downloadhaskell-c9a88db3ac4f1c3e97e3492ebe076f2df6463540.tar.gz
Make ($!) representation-polymorphic
Now that `($)` is representation-polymorphic, `($!)` should surely follow suit. Reviewers: hvr, bgamari, simonpj Reviewed By: bgamari, simonpj Subscribers: simonpj, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4382
-rw-r--r--docs/users_guide/8.6.1-notes.rst2
-rw-r--r--libraries/base/GHC/Base.hs4
-rw-r--r--libraries/base/changelog.md4
3 files changed, 8 insertions, 2 deletions
diff --git a/docs/users_guide/8.6.1-notes.rst b/docs/users_guide/8.6.1-notes.rst
index c17664f1ae..e844ab6b2a 100644
--- a/docs/users_guide/8.6.1-notes.rst
+++ b/docs/users_guide/8.6.1-notes.rst
@@ -49,6 +49,8 @@ Template Haskell
``base`` library
~~~~~~~~~~~~~~~~
+``($!)`` is now representation-polymorphic like ``($)``.
+
Build system
~~~~~~~~~~~~
diff --git a/libraries/base/GHC/Base.hs b/libraries/base/GHC/Base.hs
index 7875fef3c1..17d4151d7c 100644
--- a/libraries/base/GHC/Base.hs
+++ b/libraries/base/GHC/Base.hs
@@ -1327,8 +1327,8 @@ f $ x = f x
-- argument, evaluates the argument to weak head normal form (WHNF), then calls
-- the function with that value.
-($!) :: (a -> b) -> a -> b
-f $! x = let !vx = x in f vx -- see #2273
+($!) :: forall r a (b :: TYPE r). (a -> b) -> a -> b
+f $! x = let !vx = x in f vx -- see #2273
-- | @'until' p f@ yields the result of applying @f@ until @p@ holds.
until :: (a -> Bool) -> (a -> a) -> a -> a
diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index ad8767f72f..fe7e377860 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -1,5 +1,9 @@
# Changelog for [`base` package](http://hackage.haskell.org/package/base)
+## 4.12.0.0 *TBA*
+
+ * `($!)` is now representation-polymorphic like `($)`.
+
## 4.11.1.0 *TBA*
* `System.IO.openTempFile` is now thread-safe on Windows.