git.iko.soy/typeable/transformers-lift
on master help sign in
10 files changed+232−39
since splitsnapshots
unifiedsplit
.travis.yml+10−10 src/Control/Monad/Trans/Lift/CallCC.hs+36 src/Control/Monad/Trans/Lift/Catch.hs+31 src/Control/Monad/Trans/Lift/Listen.hs+44−10 src/Control/Monad/Trans/Lift/Local.hs+32 src/Control/Monad/Trans/Lift/Pass.hs+45−10 src/Control/Monad/Trans/Lift/StT.hs+15−1 stack-7.8.3.yaml+7 stack.yaml+1−2 transformers-lift.cabal+11−6
.travis.yml+10−10
@@ -1,10 +1,11 @@
11sudo: false
22
33env:
4− - CABALVER=1.18 GHCVER=7.6.3
5− - CABALVER=1.18 GHCVER=7.8.4
6− - CABALVER=1.22 GHCVER=7.10.3
7− - CABALVER=1.24 GHCVER=8.0.1
4+ - CABALVER=3.0 GHCVER=7.10.3
5+ - CABALVER=3.0 GHCVER=8.0.2
6+ - CABALVER=3.0 GHCVER=8.2.2
7+ - CABALVER=3.0 GHCVER=8.4.4
8+ - CABALVER=3.0 GHCVER=8.6.1
89 - CABALVER=head GHCVER=head
910
1011before_install:
@@ -24,12 +25,11 @@ addons:
2425 sources:
2526 - hvr-ghc
2627 packages:
27− - ghc-7.6.3
28− - ghc-7.8.4
2928 - ghc-7.10.3
30− - ghc-8.0.1
29+ - ghc-8.0.2
30+ - ghc-8.2.2
31+ - ghc-8.4.4
32+ - ghc-8.6.1
3133 - ghc-head
32− - cabal-install-1.18
33− - cabal-install-1.22
34− - cabal-install-1.24
34+ - cabal-install-3.0
3535 - cabal-install-head
src/Control/Monad/Trans/Lift/CallCC.hs+36
@@ -23,10 +23,16 @@ 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+
33+#if MIN_VERSION_transformers(0,5,3)
34+import qualified Control.Monad.Trans.Accum as Acc
35+#endif
3036
3137import Control.Monad.Trans.Lift.StT
3238
@@ -73,38 +79,68 @@ defaultLiftCallCC' t unT callCC f
7379
7480instance LiftCallCC (E.ExceptT e) where
7581 liftCallCC = E.liftCallCC
82+ {-# INLINE liftCallCC #-}
7683
7784instance LiftCallCC I.IdentityT where
7885 liftCallCC = I.liftCallCC
86+ {-# INLINE liftCallCC #-}
7987
8088instance LiftCallCC L.ListT where
8189 liftCallCC = L.liftCallCC
90+ {-# INLINE liftCallCC #-}
8291
8392instance LiftCallCC M.MaybeT where
8493 liftCallCC = M.liftCallCC
94+ {-# INLINE liftCallCC #-}
8595
8696instance LiftCallCC (R.ReaderT r) where
8797 liftCallCC = R.liftCallCC
98+ {-# INLINE liftCallCC #-}
8899
89100instance Monoid w => LiftCallCC (W.Lazy.WriterT w) where
90101 liftCallCC = W.Lazy.liftCallCC
102+ {-# INLINE liftCallCC #-}
91103
92104instance Monoid w => LiftCallCC (W.Strict.WriterT w) where
93105 liftCallCC = W.Strict.liftCallCC
106+ {-# INLINE liftCallCC #-}
107+
108+instance Monoid w => LiftCallCC (W.CPS.WriterT w) where
109+ liftCallCC = W.CPS.liftCallCC
110+ {-# INLINE liftCallCC #-}
94111
95112instance Monoid w => LiftCallCC (RWS.Lazy.RWST r w s) where
96113 liftCallCC = RWS.Lazy.liftCallCC
114+ {-# INLINE liftCallCC #-}
97115 liftCallCC' = RWS.Lazy.liftCallCC'
116+ {-# INLINE liftCallCC' #-}
98117
99118instance Monoid w => LiftCallCC (RWS.Strict.RWST r w s) where
100119 liftCallCC = RWS.Strict.liftCallCC
120+ {-# INLINE liftCallCC #-}
101121 liftCallCC' = RWS.Strict.liftCallCC'
122+ {-# INLINE liftCallCC' #-}
123+
124+instance Monoid w => LiftCallCC (RWS.CPS.RWST r w s) where
125+ liftCallCC = RWS.CPS.liftCallCC
126+ {-# INLINE liftCallCC #-}
127+ liftCallCC' = RWS.CPS.liftCallCC'
128+ {-# INLINE liftCallCC' #-}
102129
103130instance LiftCallCC (S.Lazy.StateT s) where
104131 liftCallCC = S.Lazy.liftCallCC
132+ {-# INLINE liftCallCC #-}
105133 liftCallCC' = S.Lazy.liftCallCC'
134+ {-# INLINE liftCallCC' #-}
106135
107136instance LiftCallCC (S.Strict.StateT s) where
108137 liftCallCC = S.Strict.liftCallCC
138+ {-# INLINE liftCallCC #-}
109139 liftCallCC' = S.Strict.liftCallCC'
140+ {-# INLINE liftCallCC' #-}
110141
142+#if MIN_VERSION_transformers(0,5,3)
143+instance Monoid w => LiftCallCC (Acc.AccumT w) where
144+ liftCallCC = Acc.liftCallCC
145+ {-# INLINE liftCallCC #-}
146+#endif
src/Control/Monad/Trans/Lift/Catch.hs+31
@@ -22,10 +22,16 @@ 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+
32+#if MIN_VERSION_transformers(0,5,3)
33+import qualified Control.Monad.Trans.Accum as Acc
34+#endif
2935
3036import Control.Monad.Trans.Lift.StT
3137
@@ -50,33 +56,58 @@ defaultLiftCatch t unT f m h = t $ liftCatch f (unT m) (unT . h)
5056
5157instance LiftCatch (E.ExceptT e) where
5258 liftCatch f m h = E.ExceptT $ f (E.runExceptT m) (E.runExceptT . h)
59+ {-# INLINE liftCatch #-}
5360
5461instance LiftCatch I.IdentityT where
5562 liftCatch = I.liftCatch
63+ {-# INLINE liftCatch #-}
5664
5765instance LiftCatch L.ListT where
5866 liftCatch = L.liftCatch
67+ {-# INLINE liftCatch #-}
5968
6069instance LiftCatch M.MaybeT where
6170 liftCatch = M.liftCatch
71+ {-# INLINE liftCatch #-}
6272
6373instance LiftCatch (R.ReaderT r) where
6474 liftCatch = R.liftCatch
75+ {-# INLINE liftCatch #-}
6576
6677instance Monoid w => LiftCatch (RWS.Lazy.RWST r w s) where
6778 liftCatch = RWS.Lazy.liftCatch
79+ {-# INLINE liftCatch #-}
6880
6981instance Monoid w => LiftCatch (RWS.Strict.RWST r w s) where
7082 liftCatch = RWS.Strict.liftCatch
83+ {-# INLINE liftCatch #-}
84+
85+instance Monoid w => LiftCatch (RWS.CPS.RWST r w s) where
86+ liftCatch = RWS.CPS.liftCatch
87+ {-# INLINE liftCatch #-}
7188
7289instance LiftCatch (S.Lazy.StateT s) where
7390 liftCatch = S.Lazy.liftCatch
91+ {-# INLINE liftCatch #-}
7492
7593instance LiftCatch (S.Strict.StateT s) where
7694 liftCatch = S.Strict.liftCatch
95+ {-# INLINE liftCatch #-}
7796
7897instance Monoid w => LiftCatch (W.Lazy.WriterT w) where
7998 liftCatch = W.Lazy.liftCatch
99+ {-# INLINE liftCatch #-}
80100
81101instance Monoid w => LiftCatch (W.Strict.WriterT w) where
82102 liftCatch = W.Strict.liftCatch
103+ {-# INLINE liftCatch #-}
104+
105+instance Monoid w => LiftCatch (W.CPS.WriterT w) where
106+ liftCatch = W.CPS.liftCatch
107+ {-# INLINE liftCatch #-}
108+
109+#if MIN_VERSION_transformers(0,5,3)
110+instance Monoid w => LiftCatch (Acc.AccumT w) where
111+ liftCatch = Acc.liftCatch
112+ {-# INLINE liftCatch #-}
113+#endif
src/Control/Monad/Trans/Lift/Listen.hs+44−10
@@ -15,16 +15,22 @@ 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+
31+#if MIN_VERSION_transformers(0,5,3)
32+import qualified Control.Monad.Trans.Accum as Acc
33+#endif
2834
2935import Control.Monad.Trans.Lift.StT
3036
@@ -49,38 +55,66 @@ defaultLiftListen t unT listen m = t $ liftListen listen (unT m)
4955
5056instance LiftListen (E.ExceptT e) where
5157 liftListen = E.liftListen
58+ {-# INLINE liftListen #-}
5259
5360instance LiftListen I.IdentityT where
5461 liftListen = I.mapIdentityT
62+ {-# INLINE liftListen #-}
5563
5664instance LiftListen M.MaybeT where
5765 liftListen = M.liftListen
66+ {-# INLINE liftListen #-}
5867
5968instance LiftListen (R.ReaderT r) where
6069 liftListen = R.mapReaderT
70+ {-# INLINE liftListen #-}
6171
6272instance LiftListen (S.Lazy.StateT s) where
6373 liftListen = S.Lazy.liftListen
74+ {-# INLINE liftListen #-}
6475
6576instance LiftListen (S.Strict.StateT s) where
6677 liftListen = S.Strict.liftListen
78+ {-# INLINE liftListen #-}
6779
6880instance Monoid w' => LiftListen (RWS.Lazy.RWST r w' s) where
6981 liftListen listen m = RWS.Lazy.RWST $ \r s -> do
7082 ~((a, w', s'), w) <- listen (RWS.Lazy.runRWST m r s)
7183 return ((a, w), w', s')
84+ {-# INLINE liftListen #-}
7285
7386instance Monoid w' => LiftListen (RWS.Strict.RWST r w' s) where
7487 liftListen listen m = RWS.Strict.RWST $ \r s -> do
7588 ((a, w', s'), w) <- listen (RWS.Strict.runRWST m r s)
7689 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 #-}
7797
7898instance Monoid w' => LiftListen (W.Lazy.WriterT w') where
7999 liftListen listen m = W.Lazy.WriterT $ do
80100 ~((a, w'), w) <- listen (W.Lazy.runWriterT m)
81101 return ((a, w), w')
102+ {-# INLINE liftListen #-}
82103
83104instance Monoid w' => LiftListen (W.Strict.WriterT w') where
84105 liftListen listen m = W.Strict.WriterT $ do
85106 ((a, w'), w) <- listen (W.Strict.runWriterT m)
86107 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
src/Control/Monad/Trans/Lift/Local.hs+32
@@ -22,10 +22,16 @@ 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+
32+#if MIN_VERSION_transformers(0,5,3)
33+import qualified Control.Monad.Trans.Accum as Acc
34+#endif
2935
3036-- | Signature of the @local@ operation,
3137-- introduced in "Control.Monad.Trans.Reader".
@@ -51,36 +57,62 @@ defaultLiftLocal t unT a l f = t . liftLocal a l f . unT
5157
5258instance LiftLocal (C.ContT r) where
5359 liftLocal a l f = C.liftLocal a l f
60+ {-# INLINE liftLocal #-}
5461
5562instance LiftLocal (E.ExceptT e) where
5663 liftLocal _ l f = E.mapExceptT (l f)
64+ {-# INLINE liftLocal #-}
5765
5866instance LiftLocal I.IdentityT where
5967 liftLocal _ l f = I.mapIdentityT (l f)
68+ {-# INLINE liftLocal #-}
6069
6170instance LiftLocal L.ListT where
6271 liftLocal _ l f = L.mapListT (l f)
72+ {-# INLINE liftLocal #-}
6373
6474instance LiftLocal M.MaybeT where
6575 liftLocal _ l f = M.mapMaybeT (l f)
76+ {-# INLINE liftLocal #-}
6677
6778instance LiftLocal (R.ReaderT r) where
6879 liftLocal _ l f = R.mapReaderT (l f)
80+ {-# INLINE liftLocal #-}
6981
7082instance Monoid w => LiftLocal (RWS.Lazy.RWST r w s) where
7183 liftLocal _ l f = RWS.Lazy.mapRWST (l f)
84+ {-# INLINE liftLocal #-}
7285
7386instance Monoid w => LiftLocal (RWS.Strict.RWST r w s) where
7487 liftLocal _ l f = RWS.Strict.mapRWST (l f)
88+ {-# INLINE liftLocal #-}
89+
90+instance Monoid w => LiftLocal (RWS.CPS.RWST r w s) where
91+ liftLocal _ l f = RWS.CPS.mapRWST (l f)
92+ {-# INLINE liftLocal #-}
7593
7694instance LiftLocal (S.Lazy.StateT s) where
7795 liftLocal _ l f = S.Lazy.mapStateT (l f)
96+ {-# INLINE liftLocal #-}
7897
7998instance LiftLocal (S.Strict.StateT s) where
8099 liftLocal _ l f = S.Strict.mapStateT (l f)
100+ {-# INLINE liftLocal #-}
81101
82102instance Monoid w => LiftLocal (W.Lazy.WriterT w) where
83103 liftLocal _ l f = W.Lazy.mapWriterT (l f)
104+ {-# INLINE liftLocal #-}
84105
85106instance Monoid w => LiftLocal (W.Strict.WriterT w) where
86107 liftLocal _ l f = W.Strict.mapWriterT (l f)
108+ {-# INLINE liftLocal #-}
109+
110+instance Monoid w => LiftLocal (W.CPS.WriterT w) where
111+ liftLocal _ l f = W.CPS.mapWriterT (l f)
112+ {-# INLINE liftLocal #-}
113+
114+#if MIN_VERSION_transformers(0,5,3)
115+instance Monoid w => LiftLocal (Acc.AccumT w) where
116+ liftLocal _ l f = Acc.mapAccumT (l f)
117+ {-# INLINE liftLocal #-}
118+#endif
src/Control/Monad/Trans/Lift/Pass.hs+45−10
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3+
34-- | Lifting the 'pass' operation.
45module Control.Monad.Trans.Lift.Pass
56 ( LiftPass(..)
@@ -15,16 +16,22 @@ import Data.Monoid
1516import Control.Monad.Signatures
1617import Control.Monad.Trans.Class
1718
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
19+import qualified Control.Monad.Trans.Except as E
20+import qualified Control.Monad.Trans.Identity as I
21+import qualified Control.Monad.Trans.Maybe as M
22+import qualified Control.Monad.Trans.Reader as R
23+import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
24+import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
25+import qualified Control.Monad.Trans.RWS.CPS.Internal as RWS.CPS
26+import qualified Control.Monad.Trans.State.Lazy as S.Lazy
27+import qualified Control.Monad.Trans.State.Strict as S.Strict
28+import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
29+import qualified Control.Monad.Trans.Writer.Strict as W.Strict
30+import qualified Control.Monad.Trans.Writer.CPS.Internal as W.CPS
31+
32+#if MIN_VERSION_transformers(0,5,3)
33+import qualified Control.Monad.Trans.Accum as Acc
34+#endif
2835
2936import Control.Monad.Trans.Lift.StT
3037
@@ -50,38 +57,66 @@ defaultLiftPass t unT pass m = t $ liftPass pass (unT m)
5057
5158instance LiftPass (E.ExceptT e) where
5259 liftPass = E.liftPass
60+ {-# INLINE liftPass #-}
5361
5462instance LiftPass I.IdentityT where
5563 liftPass = I.mapIdentityT
64+ {-# INLINE liftPass #-}
5665
5766instance LiftPass M.MaybeT where
5867 liftPass = M.liftPass
68+ {-# INLINE liftPass #-}
5969
6070instance LiftPass (R.ReaderT r) where
6171 liftPass = R.mapReaderT
72+ {-# INLINE liftPass #-}
6273
6374instance LiftPass (S.Lazy.StateT s) where
6475 liftPass = S.Lazy.liftPass
76+ {-# INLINE liftPass #-}
6577
6678instance LiftPass (S.Strict.StateT s) where
6779 liftPass = S.Strict.liftPass
80+ {-# INLINE liftPass #-}
6881
6982instance Monoid w' => LiftPass (RWS.Lazy.RWST r w' s) where
7083 liftPass pass m = RWS.Lazy.RWST $ \r s -> pass $ do
7184 ~((a, f), w', s') <- RWS.Lazy.runRWST m r s
7285 return ((a, w', s'), f)
86+ {-# INLINE liftPass #-}
7387
7488instance Monoid w' => LiftPass (RWS.Strict.RWST r w' s) where
7589 liftPass pass m = RWS.Strict.RWST $ \r s -> pass $ do
7690 ((a, f), w', s') <- RWS.Strict.runRWST m r s
7791 return ((a, w', s'), f)
92+ {-# INLINE liftPass #-}
93+
94+instance Monoid w' => LiftPass (RWS.CPS.RWST r w' s) where
95+ liftPass pass m = RWS.CPS.RWST $ \r w_ s -> pass $ do
96+ ((a, f), w', s') <- RWS.CPS.unRWST m r w_ s
97+ return ((a, w', s'), f)
98+ {-# INLINE liftPass #-}
7899
79100instance Monoid w' => LiftPass (W.Lazy.WriterT w') where
80101 liftPass pass m = W.Lazy.WriterT $ pass $ do
81102 ~((a, f), w') <- W.Lazy.runWriterT m
82103 return ((a, w'), f)
104+ {-# INLINE liftPass #-}
83105
84106instance Monoid w' => LiftPass (W.Strict.WriterT w') where
85107 liftPass pass m = W.Strict.WriterT $ pass $ do
86108 ((a, f), w') <- W.Strict.runWriterT m
87109 return ((a, w'), f)
110+ {-# INLINE liftPass #-}
111+
112+instance Monoid w' => LiftPass (W.CPS.WriterT w') where
113+ liftPass pass m = W.CPS.WriterT $ \w_ -> pass $ do
114+ ((a, f), w') <- W.CPS.unWriterT m w_
115+ return ((a, w'), f)
116+ {-# INLINE liftPass #-}
117+
118+#if MIN_VERSION_transformers(0,5,3)
119+instance Monoid w' => LiftPass (Acc.AccumT w') where
120+ liftPass = Acc.liftPass
121+ {-# INLINE liftPass #-}
122+#endif
src/Control/Monad/Trans/Lift/StT.hs+15−1
@@ -1,5 +1,7 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE TypeFamilies #-}
23{-# LANGUAGE KindSignatures #-}
4+
35-- | The 'StT' type family.
46module Control.Monad.Trans.Lift.StT (StT) where
57
@@ -10,10 +12,16 @@ import qualified Control.Monad.Trans.Maybe as M
1012import qualified Control.Monad.Trans.Reader as R
1113import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
1214import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
15+import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
1316import qualified Control.Monad.Trans.State.Lazy as S.Lazy
1417import qualified Control.Monad.Trans.State.Strict as S.Strict
1518import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
1619import qualified Control.Monad.Trans.Writer.Strict as W.Strict
20+import qualified Control.Monad.Trans.Writer.CPS as W.CPS
21+
22+#if MIN_VERSION_transformers(0,5,3)
23+import qualified Control.Monad.Trans.Accum as Acc
24+#endif
1725
1826-- | Internal state of a monad transformer.
1927-- Same as @StT@ from the @monad-control@ package.
@@ -26,7 +34,13 @@ type instance StT M.MaybeT a = Maybe a
2634type instance StT (R.ReaderT r) a = a
2735type instance StT (RWS.Lazy.RWST r w s) a = (a, s, w)
2836type instance StT (RWS.Strict.RWST r w s) a = (a, s, w)
37+type instance StT (RWS.CPS.RWST r w s) a = (a, s, w)
2938type instance StT (S.Lazy.StateT s) a = (a, s)
3039type instance StT (S.Strict.StateT s) a = (a, s)
31−type instance StT (W.Strict.WriterT w) a = (a, w)
3240type instance StT (W.Lazy.WriterT w) a = (a, w)
41+type instance StT (W.Strict.WriterT w) a = (a, w)
42+type instance StT (W.CPS.WriterT w) a = (a, w)
43+
44+#if MIN_VERSION_transformers(0,5,3)
45+type instance StT (Acc.AccumT w) a = (a, w)
46+#endif
stack-7.8.3.yamlnew file+7
@@ -0,0 +1,7 @@
1+flags: {}
2+packages:
3+- '.'
4+resolver: lts-2.22
5+extra-deps:
6+- transformers-0.4.2.0
7+- writer-cps-transformers-0.1.1.3
stack.yaml+1−2
@@ -1,5 +1,4 @@
11flags: {}
22packages:
33- '.'
4−extra-deps: []
5−resolver: nightly-2015-07-15
4+resolver: nightly-2018-03-17
transformers-lift.cabal+11−6
@@ -1,18 +1,19 @@
1+cabal-version: 2.2
12name: transformers-lift
2−version: 0.1.0.1
3+version: 0.2.0.2
34synopsis: Ad-hoc type classes for lifting
45description:
56 This simple and lightweight library provides type classes
67 for lifting monad transformer operations.
78
8−license: BSD3
9+-- license: BSD3
10+-- ^ unfortunately have to comment this line because of cabal2nix
911license-file: LICENSE
1012author: Vladislav Zavialov
1113maintainer: Vladislav Zavialov <vlad.z.4096@gmail.com>
1214category: Control
1315bug-reports: https://github.com/int-index/transformers-lift/issues
1416build-type: Simple
15−cabal-version: >=1.10
1617
1718library
1819 exposed-modules: Control.Monad.Trans.Lift.Local
@@ -22,8 +23,12 @@ library
2223 Control.Monad.Trans.Lift.Pass
2324 Control.Monad.Trans.Lift.StT
2425
25− build-depends: base >=4.6 && <4.10
26− , transformers >= 0.4.2
26+ build-depends: base >=4.8 && <4.13
27+ , transformers >= 0.4.2.0 && <0.6
28+ , writer-cps-transformers == 0.1.1.4
29+
30+ mixins: transformers hiding
31+ (Control.Monad.Trans.RWS.CPS, Control.Monad.Trans.Writer.CPS)
2732
2833 default-language: Haskell2010
2934 other-extensions: CPP
@@ -32,4 +37,4 @@ library
3237 KindSignatures
3338
3439 hs-source-dirs: src
35− ghc-options: -Wall
40+ ghc-options: -Wall -fno-warn-deprecations