@@ -33,7 +33,7 @@ import Control.Monad.Identity
33import Control.Monad.Primitive
33import Control.Monad.Primitive
34import Control.Monad.Reader
34import Control.Monad.Reader
35import Control.Monad.Ref
35import Control.Monad.Ref
36−import Control.Monad.Trans.Control
36+import qualified Control.Monad.Trans.Control as TransControl
37import Data.Dependent.Map (DMap)
37import Data.Dependent.Map (DMap)
38import qualified Data.Dependent.Map as DMap
38import qualified Data.Dependent.Map as DMap
39import Data.Functor.Compose
39import Data.Functor.Compose
@@ -54,13 +54,6 @@ instance PrimMonad m => PrimMonad (PostBuildT x m) where
54 type PrimState (PostBuildT x m) = PrimState m
54 type PrimState (PostBuildT x m) = PrimState m
55 primitive = lift . primitive
55 primitive = lift . primitive
57−instance MonadTransControl (PostBuildT t) where
58− type StT (PostBuildT t) a = StT (ReaderT (Event t ())) a
59− {-# INLINABLE liftWith #-}
60− liftWith = defaultLiftWith PostBuildT unPostBuildT
61− {-# INLINABLE restoreT #-}
62− restoreT = defaultRestoreT PostBuildT
64instance (Reflex t, Monad m) => PostBuild t (PostBuildT t m) where
57instance (Reflex t, Monad m) => PostBuild t (PostBuildT t m) where
65 {-# INLINABLE getPostBuild #-}
58 {-# INLINABLE getPostBuild #-}
66 getPostBuild = PostBuildT ask
59 getPostBuild = PostBuildT ask
@@ -78,11 +71,11 @@ instance MonadHold t m => MonadHold t (PostBuildT t m) where
78 holdIncremental v0 = lift . holdIncremental v0
71 holdIncremental v0 = lift . holdIncremental v0
80instance PerformEvent t m => PerformEvent t (PostBuildT t m) where
73instance PerformEvent t m => PerformEvent t (PostBuildT t m) where
81− type Performable (PostBuildT t m) = PostBuildT t (Performable m)
74+ type Performable (PostBuildT t m) = Performable m
82 {-# INLINABLE performEvent_ #-}
75 {-# INLINABLE performEvent_ #-}
83− performEvent_ e = liftWith $ \run -> performEvent_ $ fmap run e
76+ performEvent_ = lift . performEvent_
84 {-# INLINABLE performEvent #-}
77 {-# INLINABLE performEvent #-}
85− performEvent e = liftWith $ \run -> performEvent $ fmap run e
78+ performEvent = lift . performEvent
87instance (ReflexHost t, MonadReflexCreateTrigger t m) => MonadReflexCreateTrigger t (PostBuildT t m) where
80instance (ReflexHost t, MonadReflexCreateTrigger t m) => MonadReflexCreateTrigger t (PostBuildT t m) where
88 {-# INLINABLE newEventWithTrigger #-}
81 {-# INLINABLE newEventWithTrigger #-}
@@ -175,3 +168,15 @@ mapDMapWithAdjustImpl base mapPatch f dm0 dm' = do
175 let voidResult' = fmapCheap (\_ -> ()) result'
168 let voidResult' = fmapCheap (\_ -> ()) result'
176 let loweredDm' = ffor dm' $ mapPatch (Compose . (,) (True, voidResult'))
169 let loweredDm' = ffor dm' $ mapPatch (Compose . (,) (True, voidResult'))
177 return (result0, result')
170 return (result0, result')
172+--------------------------------------------------------------------------------
173+-- Deprecated functionality
174+--------------------------------------------------------------------------------
177+instance TransControl.MonadTransControl (PostBuildT t) where
178+ type StT (PostBuildT t) a = TransControl.StT (ReaderT (Event t ())) a
179+ {-# INLINABLE liftWith #-}
180+ liftWith = TransControl.defaultLiftWith PostBuildT unPostBuildT
181+ {-# INLINABLE restoreT #-}
182+ restoreT = TransControl.defaultRestoreT PostBuildT