summaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'libraries')
-rw-r--r--libraries/base/Data/Semigroup.hs15
-rw-r--r--libraries/base/changelog.md3
2 files changed, 18 insertions, 0 deletions
diff --git a/libraries/base/Data/Semigroup.hs b/libraries/base/Data/Semigroup.hs
index 88942ad7d0..2cb1bb75cf 100644
--- a/libraries/base/Data/Semigroup.hs
+++ b/libraries/base/Data/Semigroup.hs
@@ -83,6 +83,7 @@ import Data.Monoid (All (..), Any (..), Dual (..), Endo (..),
import Data.Monoid (Alt (..))
import qualified Data.Monoid as Monoid
import Data.Void
+import GHC.Event (Event, Lifetime (..))
import GHC.Generics
infixr 6 <>
@@ -705,3 +706,17 @@ instance Semigroup (Proxy s) where
_ <> _ = Proxy
sconcat _ = Proxy
stimes _ _ = Proxy
+
+-- | @since 4.10.0.0
+instance Semigroup a => Semigroup (IO a) where
+ (<>) = liftA2 (<>)
+
+-- | @since 4.10.0.0
+instance Semigroup Event where
+ (<>) = mappend
+ stimes = stimesMonoid
+
+-- | @since 4.10.0.0
+instance Semigroup Lifetime where
+ (<>) = mappend
+ stimes = stimesMonoid
diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index d2cc42159b..a01c878a53 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -23,6 +23,9 @@
`ReadS`, as well as related combinators, have been added to
`Data.Functor.Classes` (#12358)
+ * Add `Semigroup` instance for `IO`, as well as for `Event` and `Lifetime`
+ from `GHC.Event` (#12464)
+
## 4.9.0.0 *May 2016*
* Bundled with GHC 8.0