Warn against using Data.Monoid.First
authorAndrew Martin <andrew.thaddeus@gmail.com>
Wed, 25 Apr 2018 23:35:36 +0000 (19:35 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 3 May 2018 16:00:51 +0000 (12:00 -0400)
Noting that it will be removed in the future.

libraries/base/Data/Monoid.hs

index b6d09c1..d11eda8 100644 (file)
@@ -88,6 +88,16 @@ import Data.Semigroup.Internal
 --
 -- >>> getFirst (First (Just "hello") <> First Nothing <> First (Just "world"))
 -- Just "hello"
+--
+-- Use of this type is discouraged. Note the following equivalence:
+--
+-- > Data.Monoid.First x === Maybe (Data.Semigroup.First x)
+--
+-- In additional to being equivalent in the structural sense, the two
+-- also have 'Monoid' instances that behave the same. This type will
+-- be marked deprecated in GHC 8.8. It will be removed in GHC 8.10.
+-- Users are advised to use the variant from "Data.Semigroup" and wrap
+-- it in 'Maybe'.
 newtype First a = First { getFirst :: Maybe a }
         deriving ( Eq          -- ^ @since 2.01
                  , Ord         -- ^ @since 2.01