@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE TypeFamilies #-}
23{-# LANGUAGE UndecidableInstances #-}
34module Control.Monad.Trans.Lift.Listen
@@ -6,7 +7,9 @@ module Control.Monad.Trans.Lift.Listen
67 , module Control.Monad.Trans.Class
78 ) where
89
10+#if __GLASGOW_HASKELL__ < 710
911import Data.Monoid
12+#endif
1013
1114import Control.Monad.Signatures
1215import Control.Monad.Trans.Class
@@ -16,7 +19,6 @@ import qualified Control.Monad.Trans.Except as E
1619import qualified Control.Monad.Trans.Identity as I
1720import qualified Control.Monad.Trans.Maybe as M
1821import qualified Control.Monad.Trans.Reader as R
19−import qualified Control.Monad.Trans.Cont as C
2022import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
2123import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
2224import qualified Control.Monad.Trans.State.Lazy as S.Lazy
@@ -48,6 +50,12 @@ instance LiftListen (S.Lazy.StateT s) where
4850instance LiftListen (S.Strict.StateT s) where
4951 liftListen = S.Strict.liftListen
5052
53+instance Monoid w' => LiftListen (RWS.Lazy.RWST r w' s) where
54+ liftListen = error "TODO"
55+
56+instance Monoid w' => LiftListen (RWS.Strict.RWST r w' s) where
57+ liftListen = error "TODO"
58+
5159instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
5260 liftListen listen m = W.Lazy.WriterT $ do
5361 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)