event 0.1.0.2 → 0.1.1
raw patch · 3 files changed
+13/−2 lines, 3 files
Files
- CHANGELOG.md +4/−0
- event.cabal +1/−1
- src/Control/Concurrent/Event.hs +8/−1
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 0.1.1++- Monoid and Semigroup instance for Trigger.+ ## 0.1.0.2 - Made `Detach` visible.
event.cabal view
@@ -1,5 +1,5 @@ name: event-version: 0.1.0.2+version: 0.1.1 synopsis: Monoidal, monadic and first-class events description: This package can be used to represent events as first-class objects instead of deepening callbacks and
src/Control/Concurrent/Event.hs view
@@ -54,7 +54,7 @@ , on , newEvent -- * Triggering events- , Trigger+ , Trigger(..) , trigger ) where @@ -114,6 +114,13 @@ -- |@'Trigger' a@ is used to 'trigger' an @'Event' a@. newtype Trigger a = Trigger (a -> IO ())++instance Monoid (Trigger a) where+ mempty = Trigger . const $ pure ()+ mappend = (<>)+ +instance Semigroup (Trigger a) where+ Trigger f <> Trigger g = Trigger $ \a -> f a >> g a -- |Use a 'Trigger'. trigger :: (MonadIO m) => Trigger a -> a -> m ()