@@ -71,7 +71,7 @@ data Replaceable t w = Replaceable
7171 , _replaceable_modify :: Event t (Maybe (Replaceable t w)) -- "Please delete" is represented with an event of Nothing; all subsequent events will be ignored
7272 }
7373
74−type DynamicWriterAccumulator t w = [Replaceable t (Dynamic t w)]
74+type DynamicWriterAccumulator t w = [Dynamic t w]
7575
7676newtype DynamicWriterT t w m a = DynamicWriterT { unDynamicWriterT :: StateT (DynamicWriterAccumulator t w) m a } deriving (Functor, Applicative, Monad, MonadIO, MonadFix, MonadHold t, MonadSample t, MonadAsyncException, MonadException) -- The list is kept in reverse order
7777
@@ -111,17 +111,16 @@ mconcatIncrementalReplaceableDynMap m0 m' additionsCeased = do
111111 result = fmap (mconcat . Map.elems) $ incrementalToDynamic $ mergeDynIncremental i
112112 return $ Replaceable result $ fmapMaybe id $ updated $ zipDynWith replaceSelf noMoreAdditions $ incrementalToDynamic vals
113113
114−runDynamicWriterT :: (MonadFix m, Reflex t, MonadHold t m, Monoid w) => DynamicWriterT t w m a -> m (a, Dynamic t w)
114+runDynamicWriterT :: (MonadFix m, Reflex t, Monoid w) => DynamicWriterT t w m a -> m (a, Dynamic t w)
115115runDynamicWriterT (DynamicWriterT a) = do
116116 (result, ws) <- runStateT a []
117− Replaceable w _ <- mconcatIncrementalReplaceableDynMap (Map.fromList $ zip [1 :: Int ..] $ reverse ws) never never
118− return (result, w)
117+ return (result, mconcat $ reverse ws)
119118
120119class Monad m => MonadDynamicWriter t w m | m -> t w where
121120 tellDyn :: Dynamic t w -> m ()
122121
123122instance (Monad m, Reflex t) => MonadDynamicWriter t w (DynamicWriterT t w m) where
124− tellDyn w = DynamicWriterT $ modify (Replaceable w never :)
123+ tellDyn w = DynamicWriterT $ modify (w :)
125124
126125instance MonadReader r m => MonadReader r (DynamicWriterT t w m) where
127126 ask = lift ask