@@ -1,8 +1,5 @@
1−-- | This module defines 'MonadDynamicWriter' and 'DynamicWriterT', its standard
2−-- implementation.
31{-# LANGUAGE CPP #-}
42{-# LANGUAGE FlexibleInstances #-}
5−{-# LANGUAGE FunctionalDependencies #-}
63{-# LANGUAGE GADTs #-}
74{-# LANGUAGE GeneralizedNewtypeDeriving #-}
85{-# LANGUAGE LambdaCase #-}
@@ -14,9 +11,8 @@
1411#ifdef USE_REFLEX_OPTIMIZER
1512{-# OPTIONS_GHC -fplugin=Reflex.Optimizer #-}
1613#endif
17−module Reflex.DynamicWriter
18− ( MonadDynamicWriter (..)
19− , DynamicWriterT (..)
14+module Reflex.DynamicWriter.Base
15+ ( DynamicWriterT (..)
2016 , runDynamicWriterT
2117 , withDynamicWriterT
2218 ) where
@@ -40,6 +36,7 @@ import Data.Semigroup
4036import Data.Some (Some)
4137import Data.These
4238import Reflex.Class
39+import Reflex.DynamicWriter.Class
4340import Reflex.Host.Class
4441import qualified Reflex.Patch.MapWithMove as MapWithMove
4542import Reflex.PerformEvent.Class
@@ -75,7 +72,7 @@ mergeDynIncrementalWithMove a = unsafeBuildIncremental (mapM (sample . current)
7572 These p_ c -> (unPatchMapWithMove p_, c)
7673 (pWithNewVals, noLongerMoved) = flip runState [] $ forM p $ MapWithMove.nodeInfoMapMFrom $ \case
7774 MapWithMove.From_Insert v -> return $ MapWithMove.From_Insert v
78− MapWithMove.From_Delete -> return $ MapWithMove.From_Delete
75+ MapWithMove.From_Delete -> return MapWithMove.From_Delete
7976 MapWithMove.From_Move k -> case Map.lookup k changed of
8077 Nothing -> return $ MapWithMove.From_Move k
8178 Just v -> do
@@ -107,11 +104,6 @@ runDynamicWriterT (DynamicWriterT a) = do
107104 (result, ws) <- runStateT a []
108105 return (result, mconcat $ reverse ws)
109106
110−-- | 'MonadDynamicWriter' efficiently collects 'Dynamic' values using 'tellDyn'
111−-- and combines them monoidally to provide a 'Dynamic' result.
112−class (Monad m, Monoid w) => MonadDynamicWriter t w m | m -> t w where
113− tellDyn :: Dynamic t w -> m ()
114−
115107instance (Monad m, Monoid w, Reflex t) => MonadDynamicWriter t w (DynamicWriterT t w m) where
116108 tellDyn w = DynamicWriterT $ modify (w :)
117109
@@ -133,9 +125,6 @@ instance TriggerEvent t m => TriggerEvent t (DynamicWriterT t w m) where
133125instance PostBuild t m => PostBuild t (DynamicWriterT t w m) where
134126 getPostBuild = lift getPostBuild
135127
136−instance MonadDynamicWriter t w m => MonadDynamicWriter t w (ReaderT r m) where
137− tellDyn = lift . tellDyn
138−
139128instance MonadState s m => MonadState s (DynamicWriterT t w m) where
140129 get = lift get
141130 put = lift . put