on develop help sign in
Add instances for mtl transformers
14480dbBenno Fünfstück
src/Reflex/Class.hs+34
@@ -6,6 +6,10 @@ import Prelude hiding (mapM, mapM_, sequence, sequence_, foldl)
6import Control.Monad.Identity hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
6import Control.Monad.Identity hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
7import Control.Monad.State.Strict hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
7import Control.Monad.State.Strict hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
8import Control.Monad.Reader hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
8import Control.Monad.Reader hiding (mapM, mapM_, forM, forM_, sequence, sequence_)
9+import Control.Monad.Writer (WriterT())
10+import Control.Monad.Except (ExceptT())
11+import Control.Monad.Cont (ContT())
12+import Control.Monad.RWS (RWST())
9import Data.List.NonEmpty (NonEmpty (..))
13import Data.List.NonEmpty (NonEmpty (..))
10import Data.These
14import Data.These
11import Data.Align
15import Data.Align
@@ -67,6 +71,36 @@ instance MonadSample t m => MonadSample t (ReaderT r m) where
67instance MonadHold t m => MonadHold t (ReaderT r m) where
71instance MonadHold t m => MonadHold t (ReaderT r m) where
68 hold a0 = lift . hold a0
72 hold a0 = lift . hold a0
69
73
74+instance (MonadSample t m, Monoid r) => MonadSample t (WriterT r m) where
75+ sample = lift . sample
76+
77+instance (MonadHold t m, Monoid r) => MonadHold t (WriterT r m) where
78+ hold a0 = lift . hold a0
79+
80+instance MonadSample t m => MonadSample t (StateT s m) where
81+ sample = lift . sample
82+
83+instance MonadHold t m => MonadHold t (StateT s m) where
84+ hold a0 = lift . hold a0
85+
86+instance MonadSample t m => MonadSample t (ExceptT e m) where
87+ sample = lift . sample
88+
89+instance MonadHold t m => MonadHold t (ExceptT e m) where
90+ hold a0 = lift . hold a0
91+
92+instance (MonadSample t m, Monoid w) => MonadSample t (RWST r w s m) where
93+ sample = lift . sample
94+
95+instance (MonadHold t m, Monoid w) => MonadHold t (RWST r w s m) where
96+ hold a0 = lift . hold a0
97+
98+instance MonadSample t m => MonadSample t (ContT r m) where
99+ sample = lift . sample
100+
101+instance MonadHold t m => MonadHold t (ContT r m) where
102+ hold a0 = lift . hold a0
103+
70--------------------------------------------------------------------------------
104--------------------------------------------------------------------------------
71-- Convenience functions
105-- Convenience functions
72--------------------------------------------------------------------------------
106--------------------------------------------------------------------------------