From 7788c09c787fce817cf5a44c34ba538a39388c1c Mon Sep 17 00:00:00 2001 From: konsumlamm Date: Tue, 25 Apr 2023 03:01:32 +0200 Subject: Make `(&)` representation polymorphic in the return type --- libraries/base/Data/Function.hs | 6 ++++-- libraries/base/changelog.md | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'libraries') diff --git a/libraries/base/Data/Function.hs b/libraries/base/Data/Function.hs index 35c0b7d657..9cda5628f7 100644 --- a/libraries/base/Data/Function.hs +++ b/libraries/base/Data/Function.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE ExplicitForAll #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_HADDOCK print-explicit-runtime-reps #-} @@ -28,7 +30,7 @@ module Data.Function , applyWhen ) where -import GHC.Base ( ($), (.), id, const, flip ) +import GHC.Base ( TYPE, ($), (.), id, const, flip ) import Data.Bool ( Bool(..) ) infixl 0 `on` @@ -120,7 +122,7 @@ on :: (b -> b -> c) -> (a -> b) -> a -> a -> c -- "6" -- -- @since 4.8.0.0 -(&) :: a -> (a -> b) -> b +(&) :: forall r a (b :: TYPE r). a -> (a -> b) -> b x & f = f x -- | 'applyWhen' applies a function to a value if a condition is true, diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index bc55cc4977..72b3cc9501 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -21,9 +21,10 @@ ([CLC proposal #149](https://github.com/haskell/core-libraries-committee/issues/149)) * Make `($)` representation polymorphic ([CLC proposal #132](https://github.com/haskell/core-libraries-committee/issues/132)) * Implemented [GHC Proposal #433](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0433-unsatisfiable.rst), - adding the class `Unsatisfiable :: ErrorMessage -> TypeError`` to `GHC.TypeError`, + adding the class `Unsatisfiable :: ErrorMessage -> TypeError` to `GHC.TypeError`, which provides a mechanism for custom type errors that reports the errors in - a more predictable behaviour than ``TypeError``. + a more predictable behaviour than `TypeError`. + * Make `(&)` representation polymorphic in the return type ([CLC proposal #158](https://github.com/haskell/core-libraries-committee/issues/158)) ## 4.18.0.0 *March 2023* * Shipped with GHC 9.6.1 -- cgit v1.2.1