@@ -1,6 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3−-- | Lifting the @listen@ operation.
3+-- | Lift the @listen@ operation.
44module Control.Monad.Trans.Lift.Listen
55 ( LiftListen(..)
66 , Listen
@@ -15,22 +15,16 @@ import Data.Monoid
1515import Control.Monad.Signatures
1616import Control.Monad.Trans.Class
1717
18−import qualified Control.Monad.Trans.Except as E
19−import qualified Control.Monad.Trans.Identity as I
20−import qualified Control.Monad.Trans.Maybe as M
21−import qualified Control.Monad.Trans.Reader as R
22−import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
23−import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
24−import qualified Control.Monad.Trans.RWS.CPS.Internal as RWS.CPS
25−import qualified Control.Monad.Trans.State.Lazy as S.Lazy
26−import qualified Control.Monad.Trans.State.Strict as S.Strict
27−import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
28−import qualified Control.Monad.Trans.Writer.Strict as W.Strict
29−import qualified Control.Monad.Trans.Writer.CPS.Internal as W.CPS
30−
31−#if MIN_VERSION_transformers(0,5,3)
32−import qualified Control.Monad.Trans.Accum as Acc
33−#endif
18+import qualified Control.Monad.Trans.Except as E
19+import qualified Control.Monad.Trans.Identity as I
20+import qualified Control.Monad.Trans.Maybe as M
21+import qualified Control.Monad.Trans.Reader as R
22+import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
23+import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
24+import qualified Control.Monad.Trans.State.Lazy as S.Lazy
25+import qualified Control.Monad.Trans.State.Strict as S.Strict
26+import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
27+import qualified Control.Monad.Trans.Writer.Strict as W.Strict
3428
3529import Control.Monad.Trans.Lift.StT
3630
@@ -55,66 +49,38 @@ defaultLiftListen t unT listen m = t $ liftListen listen (unT m)
5549
5650instance LiftListen (E.ExceptT e) where
5751 liftListen = E.liftListen
58− {-# INLINE liftListen #-}
5952
6053instance LiftListen I.IdentityT where
6154 liftListen = I.mapIdentityT
62− {-# INLINE liftListen #-}
6355
6456instance LiftListen M.MaybeT where
6557 liftListen = M.liftListen
66− {-# INLINE liftListen #-}
6758
6859instance LiftListen (R.ReaderT r) where
6960 liftListen = R.mapReaderT
70− {-# INLINE liftListen #-}
7161
7262instance LiftListen (S.Lazy.StateT s) where
7363 liftListen = S.Lazy.liftListen
74− {-# INLINE liftListen #-}
7564
7665instance LiftListen (S.Strict.StateT s) where
7766 liftListen = S.Strict.liftListen
78− {-# INLINE liftListen #-}
7967
8068instance Monoid w' => LiftListen (RWS.Lazy.RWST r w' s) where
8169 liftListen listen m = RWS.Lazy.RWST $ \r s -> do
8270 ~((a, w', s'), w) <- listen (RWS.Lazy.runRWST m r s)
8371 return ((a, w), w', s')
84− {-# INLINE liftListen #-}
8572
8673instance Monoid w' => LiftListen (RWS.Strict.RWST r w' s) where
8774 liftListen listen m = RWS.Strict.RWST $ \r s -> do
8875 ((a, w', s'), w) <- listen (RWS.Strict.runRWST m r s)
8976 return ((a, w), w', s')
90− {-# INLINE liftListen #-}
91−
92−instance Monoid w' => LiftListen (RWS.CPS.RWST r w' s) where
93− liftListen listen m = RWS.CPS.RWST $ \r w_ s -> do
94− ((a, w', s'), w) <- listen (RWS.CPS.unRWST m r w_ s)
95− return ((a, w), w', s')
96− {-# INLINE liftListen #-}
9777
9878instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
9979 liftListen listen m = W.Lazy.WriterT $ do
10080 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)
10181 return ((a, w), w')
102− {-# INLINE liftListen #-}
10382
10483instance Monoid w' => LiftListen (W.Strict.WriterT w') where
10584 liftListen listen m = W.Strict.WriterT $ do
10685 ((a, w'), w) <- listen (W.Strict.runWriterT m)
10786 return ((a, w), w')
108− {-# INLINE liftListen #-}
109−
110−instance Monoid w' => LiftListen (W.CPS.WriterT w') where
111− liftListen listen m = W.CPS.WriterT $ \w_ -> do
112− ((a, w'), w) <- listen (W.CPS.unWriterT m w_)
113− return ((a, w), w')
114− {-# INLINE liftListen #-}
115−
116−#if MIN_VERSION_transformers(0,5,3)
117−instance Monoid w' => LiftListen (Acc.AccumT w') where
118− liftListen = Acc.liftListen
119− {-# INLINE liftListen #-}
120−#endif