git.iko.soy/typeable/transformers-lift
on master help sign in
INLINE annotations + support for CPS.WriterT, SelectT, AccumT (#4)
commit54641adb9e7024ef5b3b16c38ff710f11262e0ef authorVladislav Zavialov <vlad.z.4096@gmail.com> dateFri 28 Apr 2017, 20:52 (9 years ago) parent9ab9788
8 files changed+177−26
.travis.yml+4−2 src/Control/Monad/Trans/Lift/CallCC.hs+31 src/Control/Monad/Trans/Lift/Catch.hs+26 src/Control/Monad/Trans/Lift/Listen.hs+39−10 src/Control/Monad/Trans/Lift/Local.hs+27 src/Control/Monad/Trans/Lift/Pass.hs+39−10 src/Control/Monad/Trans/Lift/StT.hs+7−1 transformers-lift.cabal+4−3
.travis.yml+4−2
@@ -4,7 +4,8 @@ env:
44 - CABALVER=1.18 GHCVER=7.6.3
55 - CABALVER=1.18 GHCVER=7.8.4
66 - CABALVER=1.22 GHCVER=7.10.3
7− - CABALVER=1.24 GHCVER=8.0.1
7+ - CABALVER=1.24 GHCVER=8.0.2
8+ - CABALVER=1.24 GHCVER=8.2.1
89 - CABALVER=head GHCVER=head
910
1011before_install:
@@ -27,7 +28,8 @@ addons:
2728 - ghc-7.6.3
2829 - ghc-7.8.4
2930 - ghc-7.10.3
30− - ghc-8.0.1
31+ - ghc-8.0.2
32+ - ghc-8.2.1
3133 - ghc-head
3234 - cabal-install-1.18
3335 - cabal-install-1.22
src/Control/Monad/Trans/Lift/CallCC.hs+31
@@ -23,10 +23,13 @@ import qualified Control.Monad.Trans.Maybe as M
2323import qualified Control.Monad.Trans.Reader as R
2424import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
2525import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
26+import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
2627import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2728import qualified Control.Monad.Trans.State.Strict as S.Strict
2829import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
2930import qualified Control.Monad.Trans.Writer.Strict as W.Strict
31+import qualified Control.Monad.Trans.Writer.CPS as W.CPS
32+import qualified Control.Monad.Trans.Accum as Acc
3033
3134import Control.Monad.Trans.Lift.StT
3235
@@ -73,38 +76,66 @@ defaultLiftCallCC' t unT callCC f
7376
7477instance LiftCallCC (E.ExceptT e) where
7578 liftCallCC = E.liftCallCC
79+ {-# INLINE liftCallCC #-}
7680
7781instance LiftCallCC I.IdentityT where
7882 liftCallCC = I.liftCallCC
83+ {-# INLINE liftCallCC #-}
7984
8085instance LiftCallCC L.ListT where
8186 liftCallCC = L.liftCallCC
87+ {-# INLINE liftCallCC #-}
8288
8389instance LiftCallCC M.MaybeT where
8490 liftCallCC = M.liftCallCC
91+ {-# INLINE liftCallCC #-}
8592
8693instance LiftCallCC (R.ReaderT r) where
8794 liftCallCC = R.liftCallCC
95+ {-# INLINE liftCallCC #-}
8896
8997instance Monoid w => LiftCallCC (W.Lazy.WriterT w) where
9098 liftCallCC = W.Lazy.liftCallCC
99+ {-# INLINE liftCallCC #-}
91100
92101instance Monoid w => LiftCallCC (W.Strict.WriterT w) where
93102 liftCallCC = W.Strict.liftCallCC
103+ {-# INLINE liftCallCC #-}
104+
105+instance Monoid w => LiftCallCC (W.CPS.WriterT w) where
106+ liftCallCC = W.CPS.liftCallCC
107+ {-# INLINE liftCallCC #-}
94108
95109instance Monoid w => LiftCallCC (RWS.Lazy.RWST r w s) where
96110 liftCallCC = RWS.Lazy.liftCallCC
111+ {-# INLINE liftCallCC #-}
97112 liftCallCC' = RWS.Lazy.liftCallCC'
113+ {-# INLINE liftCallCC' #-}
98114
99115instance Monoid w => LiftCallCC (RWS.Strict.RWST r w s) where
100116 liftCallCC = RWS.Strict.liftCallCC
117+ {-# INLINE liftCallCC #-}
101118 liftCallCC' = RWS.Strict.liftCallCC'
119+ {-# INLINE liftCallCC' #-}
120+
121+instance Monoid w => LiftCallCC (RWS.CPS.RWST r w s) where
122+ liftCallCC = RWS.CPS.liftCallCC
123+ {-# INLINE liftCallCC #-}
124+ liftCallCC' = RWS.CPS.liftCallCC'
125+ {-# INLINE liftCallCC' #-}
102126
103127instance LiftCallCC (S.Lazy.StateT s) where
104128 liftCallCC = S.Lazy.liftCallCC
129+ {-# INLINE liftCallCC #-}
105130 liftCallCC' = S.Lazy.liftCallCC'
131+ {-# INLINE liftCallCC' #-}
106132
107133instance LiftCallCC (S.Strict.StateT s) where
108134 liftCallCC = S.Strict.liftCallCC
135+ {-# INLINE liftCallCC #-}
109136 liftCallCC' = S.Strict.liftCallCC'
137+ {-# INLINE liftCallCC' #-}
110138
139+instance Monoid w => LiftCallCC (Acc.AccumT w) where
140+ liftCallCC = Acc.liftCallCC
141+ {-# INLINE liftCallCC #-}
src/Control/Monad/Trans/Lift/Catch.hs+26
@@ -22,10 +22,13 @@ import qualified Control.Monad.Trans.Maybe as M
2222import qualified Control.Monad.Trans.Reader as R
2323import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
2424import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
25+import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
2526import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2627import qualified Control.Monad.Trans.State.Strict as S.Strict
2728import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
2829import qualified Control.Monad.Trans.Writer.Strict as W.Strict
30+import qualified Control.Monad.Trans.Writer.CPS as W.CPS
31+import qualified Control.Monad.Trans.Accum as Acc
2932
3033import Control.Monad.Trans.Lift.StT
3134
@@ -50,33 +53,56 @@ defaultLiftCatch t unT f m h = t $ liftCatch f (unT m) (unT . h)
5053
5154instance LiftCatch (E.ExceptT e) where
5255 liftCatch f m h = E.ExceptT $ f (E.runExceptT m) (E.runExceptT . h)
56+ {-# INLINE liftCatch #-}
5357
5458instance LiftCatch I.IdentityT where
5559 liftCatch = I.liftCatch
60+ {-# INLINE liftCatch #-}
5661
5762instance LiftCatch L.ListT where
5863 liftCatch = L.liftCatch
64+ {-# INLINE liftCatch #-}
5965
6066instance LiftCatch M.MaybeT where
6167 liftCatch = M.liftCatch
68+ {-# INLINE liftCatch #-}
6269
6370instance LiftCatch (R.ReaderT r) where
6471 liftCatch = R.liftCatch
72+ {-# INLINE liftCatch #-}
6573
6674instance Monoid w => LiftCatch (RWS.Lazy.RWST r w s) where
6775 liftCatch = RWS.Lazy.liftCatch
76+ {-# INLINE liftCatch #-}
6877
6978instance Monoid w => LiftCatch (RWS.Strict.RWST r w s) where
7079 liftCatch = RWS.Strict.liftCatch
80+ {-# INLINE liftCatch #-}
81+
82+instance Monoid w => LiftCatch (RWS.CPS.RWST r w s) where
83+ liftCatch = RWS.CPS.liftCatch
84+ {-# INLINE liftCatch #-}
7185
7286instance LiftCatch (S.Lazy.StateT s) where
7387 liftCatch = S.Lazy.liftCatch
88+ {-# INLINE liftCatch #-}
7489
7590instance LiftCatch (S.Strict.StateT s) where
7691 liftCatch = S.Strict.liftCatch
92+ {-# INLINE liftCatch #-}
7793
7894instance Monoid w => LiftCatch (W.Lazy.WriterT w) where
7995 liftCatch = W.Lazy.liftCatch
96+ {-# INLINE liftCatch #-}
8097
8198instance Monoid w => LiftCatch (W.Strict.WriterT w) where
8299 liftCatch = W.Strict.liftCatch
100+ {-# INLINE liftCatch #-}
101+
102+instance Monoid w => LiftCatch (W.CPS.WriterT w) where
103+ liftCatch = W.CPS.liftCatch
104+ {-# INLINE liftCatch #-}
105+
106+instance Monoid w => LiftCatch (Acc.AccumT w) where
107+ liftCatch = Acc.liftCatch
108+ {-# INLINE liftCatch #-}
src/Control/Monad/Trans/Lift/Listen.hs+39−10
@@ -15,16 +15,19 @@ 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.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
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+import qualified Control.Monad.Trans.Accum as Acc
2831
2932import Control.Monad.Trans.Lift.StT
3033
@@ -49,38 +52,64 @@ defaultLiftListen t unT listen m = t $ liftListen listen (unT m)
4952
5053instance LiftListen (E.ExceptT e) where
5154 liftListen = E.liftListen
55+ {-# INLINE liftListen #-}
5256
5357instance LiftListen I.IdentityT where
5458 liftListen = I.mapIdentityT
59+ {-# INLINE liftListen #-}
5560
5661instance LiftListen M.MaybeT where
5762 liftListen = M.liftListen
63+ {-# INLINE liftListen #-}
5864
5965instance LiftListen (R.ReaderT r) where
6066 liftListen = R.mapReaderT
67+ {-# INLINE liftListen #-}
6168
6269instance LiftListen (S.Lazy.StateT s) where
6370 liftListen = S.Lazy.liftListen
71+ {-# INLINE liftListen #-}
6472
6573instance LiftListen (S.Strict.StateT s) where
6674 liftListen = S.Strict.liftListen
75+ {-# INLINE liftListen #-}
6776
6877instance Monoid w' => LiftListen (RWS.Lazy.RWST r w' s) where
6978 liftListen listen m = RWS.Lazy.RWST $ \r s -> do
7079 ~((a, w', s'), w) <- listen (RWS.Lazy.runRWST m r s)
7180 return ((a, w), w', s')
81+ {-# INLINE liftListen #-}
7282
7383instance Monoid w' => LiftListen (RWS.Strict.RWST r w' s) where
7484 liftListen listen m = RWS.Strict.RWST $ \r s -> do
7585 ((a, w', s'), w) <- listen (RWS.Strict.runRWST m r s)
7686 return ((a, w), w', s')
87+ {-# INLINE liftListen #-}
88+
89+instance Monoid w' => LiftListen (RWS.CPS.RWST r w' s) where
90+ liftListen listen m = RWS.CPS.RWST $ \r w_ s -> do
91+ ((a, w', s'), w) <- listen (RWS.CPS.unRWST m r w_ s)
92+ return ((a, w), w', s')
93+ {-# INLINE liftListen #-}
7794
7895instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
7996 liftListen listen m = W.Lazy.WriterT $ do
8097 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)
8198 return ((a, w), w')
99+ {-# INLINE liftListen #-}
82100
83101instance Monoid w' => LiftListen (W.Strict.WriterT w') where
84102 liftListen listen m = W.Strict.WriterT $ do
85103 ((a, w'), w) <- listen (W.Strict.runWriterT m)
86104 return ((a, w), w')
105+ {-# INLINE liftListen #-}
106+
107+instance Monoid w' => LiftListen (W.CPS.WriterT w') where
108+ liftListen listen m = W.CPS.WriterT $ \w_ -> do
109+ ((a, w'), w) <- listen (W.CPS.unWriterT m w_)
110+ return ((a, w), w')
111+ {-# INLINE liftListen #-}
112+
113+instance Monoid w' => LiftListen (Acc.AccumT w') where
114+ liftListen = Acc.liftListen
115+ {-# INLINE liftListen #-}
src/Control/Monad/Trans/Lift/Local.hs+27
@@ -22,10 +22,13 @@ import qualified Control.Monad.Trans.Maybe as M
2222import qualified Control.Monad.Trans.Reader as R
2323import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
2424import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
25+import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
2526import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2627import qualified Control.Monad.Trans.State.Strict as S.Strict
2728import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
2829import qualified Control.Monad.Trans.Writer.Strict as W.Strict
30+import qualified Control.Monad.Trans.Writer.CPS as W.CPS
31+import qualified Control.Monad.Trans.Accum as Acc
2932
3033-- | Signature of the @local@ operation,
3134-- introduced in "Control.Monad.Trans.Reader".
@@ -51,36 +54,60 @@ defaultLiftLocal t unT a l f = t . liftLocal a l f . unT
5154
5255instance LiftLocal (C.ContT r) where
5356 liftLocal a l f = C.liftLocal a l f
57+ {-# INLINE liftLocal #-}
5458
5559instance LiftLocal (E.ExceptT e) where
5660 liftLocal _ l f = E.mapExceptT (l f)
61+ {-# INLINE liftLocal #-}
5762
5863instance LiftLocal I.IdentityT where
5964 liftLocal _ l f = I.mapIdentityT (l f)
65+ {-# INLINE liftLocal #-}
6066
6167instance LiftLocal L.ListT where
6268 liftLocal _ l f = L.mapListT (l f)
69+ {-# INLINE liftLocal #-}
6370
6471instance LiftLocal M.MaybeT where
6572 liftLocal _ l f = M.mapMaybeT (l f)
73+ {-# INLINE liftLocal #-}
6674
6775instance LiftLocal (R.ReaderT r) where
6876 liftLocal _ l f = R.mapReaderT (l f)
77+ {-# INLINE liftLocal #-}
6978
7079instance Monoid w => LiftLocal (RWS.Lazy.RWST r w s) where
7180 liftLocal _ l f = RWS.Lazy.mapRWST (l f)
81+ {-# INLINE liftLocal #-}
7282
7383instance Monoid w => LiftLocal (RWS.Strict.RWST r w s) where
7484 liftLocal _ l f = RWS.Strict.mapRWST (l f)
85+ {-# INLINE liftLocal #-}
86+
87+instance Monoid w => LiftLocal (RWS.CPS.RWST r w s) where
88+ liftLocal _ l f = RWS.CPS.mapRWST (l f)
89+ {-# INLINE liftLocal #-}
7590
7691instance LiftLocal (S.Lazy.StateT s) where
7792 liftLocal _ l f = S.Lazy.mapStateT (l f)
93+ {-# INLINE liftLocal #-}
7894
7995instance LiftLocal (S.Strict.StateT s) where
8096 liftLocal _ l f = S.Strict.mapStateT (l f)
97+ {-# INLINE liftLocal #-}
8198
8299instance Monoid w => LiftLocal (W.Lazy.WriterT w) where
83100 liftLocal _ l f = W.Lazy.mapWriterT (l f)
101+ {-# INLINE liftLocal #-}
84102
85103instance Monoid w => LiftLocal (W.Strict.WriterT w) where
86104 liftLocal _ l f = W.Strict.mapWriterT (l f)
105+ {-# INLINE liftLocal #-}
106+
107+instance Monoid w => LiftLocal (W.CPS.WriterT w) where
108+ liftLocal _ l f = W.CPS.mapWriterT (l f)
109+ {-# INLINE liftLocal #-}
110+
111+instance Monoid w => LiftLocal (Acc.AccumT w) where
112+ liftLocal _ l f = Acc.mapAccumT (l f)
113+ {-# INLINE liftLocal #-}
src/Control/Monad/Trans/Lift/Pass.hs+39−10
@@ -15,16 +15,19 @@ 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.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
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+import qualified Control.Monad.Trans.Accum as Acc
2831
2932import Control.Monad.Trans.Lift.StT
3033
@@ -50,38 +53,64 @@ defaultLiftPass t unT pass m = t $ liftPass pass (unT m)
5053
5154instance LiftPass (E.ExceptT e) where
5255 liftPass = E.liftPass
56+ {-# INLINE liftPass #-}
5357
5458instance LiftPass I.IdentityT where
5559 liftPass = I.mapIdentityT
60+ {-# INLINE liftPass #-}
5661
5762instance LiftPass M.MaybeT where
5863 liftPass = M.liftPass
64+ {-# INLINE liftPass #-}
5965
6066instance LiftPass (R.ReaderT r) where
6167 liftPass = R.mapReaderT
68+ {-# INLINE liftPass #-}
6269
6370instance LiftPass (S.Lazy.StateT s) where
6471 liftPass = S.Lazy.liftPass
72+ {-# INLINE liftPass #-}
6573
6674instance LiftPass (S.Strict.StateT s) where
6775 liftPass = S.Strict.liftPass
76+ {-# INLINE liftPass #-}
6877
6978instance Monoid w' => LiftPass (RWS.Lazy.RWST r w' s) where
7079 liftPass pass m = RWS.Lazy.RWST $ \r s -> pass $ do
7180 ~((a, f), w', s') <- RWS.Lazy.runRWST m r s
7281 return ((a, w', s'), f)
82+ {-# INLINE liftPass #-}
7383
7484instance Monoid w' => LiftPass (RWS.Strict.RWST r w' s) where
7585 liftPass pass m = RWS.Strict.RWST $ \r s -> pass $ do
7686 ((a, f), w', s') <- RWS.Strict.runRWST m r s
7787 return ((a, w', s'), f)
88+ {-# INLINE liftPass #-}
89+
90+instance Monoid w' => LiftPass (RWS.CPS.RWST r w' s) where
91+ liftPass pass m = RWS.CPS.RWST $ \r w_ s -> pass $ do
92+ ((a, f), w', s') <- RWS.CPS.unRWST m r w_ s
93+ return ((a, w', s'), f)
94+ {-# INLINE liftPass #-}
7895
7996instance Monoid w' => LiftPass (W.Lazy.WriterT w') where
8097 liftPass pass m = W.Lazy.WriterT $ pass $ do
8198 ~((a, f), w') <- W.Lazy.runWriterT m
8299 return ((a, w'), f)
100+ {-# INLINE liftPass #-}
83101
84102instance Monoid w' => LiftPass (W.Strict.WriterT w') where
85103 liftPass pass m = W.Strict.WriterT $ pass $ do
86104 ((a, f), w') <- W.Strict.runWriterT m
87105 return ((a, w'), f)
106+ {-# INLINE liftPass #-}
107+
108+instance Monoid w' => LiftPass (W.CPS.WriterT w') where
109+ liftPass pass m = W.CPS.WriterT $ \w_ -> pass $ do
110+ ((a, f), w') <- W.CPS.unWriterT m w_
111+ return ((a, w'), f)
112+ {-# INLINE liftPass #-}
113+
114+instance Monoid w' => LiftPass (Acc.AccumT w') where
115+ liftPass = Acc.liftPass
116+ {-# INLINE liftPass #-}
src/Control/Monad/Trans/Lift/StT.hs+7−1
@@ -10,10 +10,13 @@ import qualified Control.Monad.Trans.Maybe as M
1010import qualified Control.Monad.Trans.Reader as R
1111import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
1212import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
13+import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
1314import qualified Control.Monad.Trans.State.Lazy as S.Lazy
1415import qualified Control.Monad.Trans.State.Strict as S.Strict
1516import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
1617import qualified Control.Monad.Trans.Writer.Strict as W.Strict
18+import qualified Control.Monad.Trans.Writer.CPS as W.CPS
19+import qualified Control.Monad.Trans.Accum as Acc
1720
1821-- | Internal state of a monad transformer.
1922-- Same as @StT@ from the @monad-control@ package.
@@ -26,7 +29,10 @@ type instance StT M.MaybeT a = Maybe a
2629type instance StT (R.ReaderT r) a = a
2730type instance StT (RWS.Lazy.RWST r w s) a = (a, s, w)
2831type instance StT (RWS.Strict.RWST r w s) a = (a, s, w)
32+type instance StT (RWS.CPS.RWST r w s) a = (a, s, w)
2933type instance StT (S.Lazy.StateT s) a = (a, s)
3034type instance StT (S.Strict.StateT s) a = (a, s)
31−type instance StT (W.Strict.WriterT w) a = (a, w)
3235type instance StT (W.Lazy.WriterT w) a = (a, w)
36+type instance StT (W.Strict.WriterT w) a = (a, w)
37+type instance StT (W.CPS.WriterT w) a = (a, w)
38+type instance StT (Acc.AccumT w) a = (a, w)
transformers-lift.cabal+4−3
@@ -1,5 +1,5 @@
11name: transformers-lift
2−version: 0.1.0.1
2+version: 0.2.0.0
33synopsis: Ad-hoc type classes for lifting
44description:
55 This simple and lightweight library provides type classes
@@ -23,7 +23,8 @@ library
2323 Control.Monad.Trans.Lift.StT
2424
2525 build-depends: base >=4.6 && <4.11
26− , transformers >= 0.4.2
26+ , transformers >= 0.5.4.0
27+ , writer-cps-transformers >= 0.1.1.3
2728
2829 default-language: Haskell2010
2930 other-extensions: CPP
@@ -32,4 +33,4 @@ library
3233 KindSignatures
3334
3435 hs-source-dirs: src
35− ghc-options: -Wall
36+ ghc-options: -Wall -fno-warn-deprecations