@@ -1,3 +1,4 @@
1{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE UndecidableInstances #-}
3{-# LANGUAGE UndecidableInstances #-}
3module Control.Monad.Trans.Lift.Listen
4module Control.Monad.Trans.Lift.Listen
@@ -6,7 +7,9 @@ module Control.Monad.Trans.Lift.Listen
6 , module Control.Monad.Trans.Class
7 , module Control.Monad.Trans.Class
10+#if __GLASGOW_HASKELL__ < 710
9import Data.Monoid
11import Data.Monoid
11import Control.Monad.Signatures
14import Control.Monad.Signatures
12import Control.Monad.Trans.Class
15import Control.Monad.Trans.Class
@@ -16,7 +19,6 @@ import qualified Control.Monad.Trans.Except as E
16import qualified Control.Monad.Trans.Identity as I
19import qualified Control.Monad.Trans.Identity as I
17import qualified Control.Monad.Trans.Maybe as M
20import qualified Control.Monad.Trans.Maybe as M
18import qualified Control.Monad.Trans.Reader as R
21import qualified Control.Monad.Trans.Reader as R
19−import qualified Control.Monad.Trans.Cont as C
20import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
22import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
21import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
23import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
22import qualified Control.Monad.Trans.State.Lazy as S.Lazy
24import qualified Control.Monad.Trans.State.Lazy as S.Lazy
@@ -48,6 +50,12 @@ instance LiftListen (S.Lazy.StateT s) where
48instance LiftListen (S.Strict.StateT s) where
50instance LiftListen (S.Strict.StateT s) where
49 liftListen = S.Strict.liftListen
51 liftListen = S.Strict.liftListen
53+instance Monoid w' => LiftListen (RWS.Lazy.RWST r w' s) where
54+ liftListen = error "TODO"
56+instance Monoid w' => LiftListen (RWS.Strict.RWST r w' s) where
57+ liftListen = error "TODO"
51instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
59instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
52 liftListen listen m = W.Lazy.WriterT $ do
60 liftListen listen m = W.Lazy.WriterT $ do
53 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)
61 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)