@@ -12,6 +12,7 @@ import Control.Monad.Trans.Cont (ContT())
12import Control.Monad.Trans.Except (ExceptT())
12import Control.Monad.Trans.Except (ExceptT())
13import Control.Monad.Trans.RWS (RWST())
13import Control.Monad.Trans.RWS (RWST())
14import Control.Monad.Trans.State (StateT())
14import Control.Monad.Trans.State (StateT())
15+import qualified Control.Monad.Trans.State.Strict as Strict
15import Data.Dependent.Sum (DSum)
16import Data.Dependent.Sum (DSum)
16import Data.Monoid
17import Data.Monoid
17import Data.GADT.Compare
18import Data.GADT.Compare
@@ -152,6 +153,21 @@ instance MonadReflexHost t m => MonadReflexHost t (StateT s m) where
152 type ReadPhase (StateT s m) = ReadPhase m
153 type ReadPhase (StateT s m) = ReadPhase m
153 fireEventsAndRead dm a = lift $ fireEventsAndRead dm a
154 fireEventsAndRead dm a = lift $ fireEventsAndRead dm a
154 runHostFrame = lift . runHostFrame
155 runHostFrame = lift . runHostFrame
158+instance MonadReflexCreateTrigger t m => MonadReflexCreateTrigger t (Strict.StateT s m) where
159+ newEventWithTrigger = lift . newEventWithTrigger
160+ newFanEventWithTrigger initializer = lift $ newFanEventWithTrigger initializer
162+instance MonadSubscribeEvent t m => MonadSubscribeEvent t (Strict.StateT r m) where
163+ subscribeEvent = lift . subscribeEvent
165+instance MonadReflexHost t m => MonadReflexHost t (Strict.StateT s m) where
166+ type ReadPhase (Strict.StateT s m) = ReadPhase m
167+ fireEventsAndRead dm a = lift $ fireEventsAndRead dm a
168+ runHostFrame = lift . runHostFrame
156instance MonadReflexCreateTrigger t m => MonadReflexCreateTrigger t (ContT r m) where
172instance MonadReflexCreateTrigger t m => MonadReflexCreateTrigger t (ContT r m) where
157 newEventWithTrigger = lift . newEventWithTrigger
173 newEventWithTrigger = lift . newEventWithTrigger