on develop help sign in
Add `mapEventWriterT`
commit0cebaaeff807871d12b0b7613ebcb0a2d98736eb authorRyan Trinkle <ryan.trinkle@gmail.com> dateSat 14 Jul 2018, 13:56 (8 years ago) parent9493703
1 file changed+8
src/Reflex/EventWriter/Base.hs+8
src/Reflex/EventWriter/Base.hs+8
@@ -18,6 +18,7 @@ module Reflex.EventWriter.Base
1818 , runEventWriterT
1919 , runWithReplaceEventWriterTWith
2020 , sequenceDMapWithAdjustEventWriterTWith
21+ , mapEventWriterT
2122 , withEventWriterT
2223 ) where
2324
@@ -279,3 +280,10 @@ withEventWriterT f ew = do
279280 return (r, e')
280281 tellEvent e
281282 return r
283+
284+-- | Change the monad underlying an EventWriterT
285+mapEventWriterT :: (Semigroup w, Reflex t, MonadHold t m, MonadFix m)
286+ => (forall x. m x -> n x)
287+ -> EventWriterT t w m a
288+ -> EventWriterT t w n a
289+mapEventWriterT f (EventWriterT a) = EventWriterT $ mapStateT f a