@@ -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