git.iko.soy/typeable/transformers-lift
on 454deca help sign in
13 files changed+46−264
since splitsnapshots
unifiedsplit
.gitignore−1 .travis.yml+10−24 LICENSE+2−2 README.md−5 src/Control/Monad/Trans/Lift/CallCC.hs+1−37 src/Control/Monad/Trans/Lift/Catch.hs+1−32 src/Control/Monad/Trans/Lift/Listen.hs+11−45 src/Control/Monad/Trans/Lift/Local.hs+1−33 src/Control/Monad/Trans/Lift/Pass.hs+11−46 src/Control/Monad/Trans/Lift/StT.hs+1−15 stack-7.8.3.yaml−7 stack.yaml−4 transformers-lift.cabal+8−13
.gitignore−1
@@ -1,4 +1,3 @@
11dist
2−.stack-work
32.cabal-sandbox/
43cabal.sandbox.config
.travis.yml+10−24
@@ -1,35 +1,21 @@
1−sudo: false
2−
31env:
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
2+ - CABALVER=1.18 GHCVER=7.6.3
3+ - CABALVER=1.18 GHCVER=7.8.4
4+ - CABALVER=1.22 GHCVER=7.10.2
95 - CABALVER=head GHCVER=head
106
117before_install:
8+ - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
9+ - travis_retry sudo apt-get update
10+ - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
1211 - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
13− - ghc --version
14− - cabal --version
1512 - travis_retry cabal update
1613
1714install:
18− - cabal install --dep
15+ - cabal --version
16+ - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
17+ - cabal install --only-dependencies
1918
2019script:
20+ - cabal configure --enable-tests -v2
2121 - cabal build
22−
23−addons:
24− apt:
25− sources:
26− - hvr-ghc
27− packages:
28− - ghc-7.10.3
29− - ghc-8.0.2
30− - ghc-8.2.2
31− - ghc-8.4.4
32− - ghc-8.6.1
33− - ghc-head
34− - cabal-install-3.0
35− - cabal-install-head
LICENSE+2−2
@@ -1,4 +1,4 @@
1−Copyright (c) 2015, Vladislav Zavialov
1+Copyright (c) 2015, Index Int
22
33All rights reserved.
44
@@ -13,7 +13,7 @@ modification, are permitted provided that the following conditions are met:
1313 disclaimer in the documentation and/or other materials provided
1414 with the distribution.
1515
16− * Neither the name of Vladislav Zavialov nor the names of other
16+ * Neither the name of Index Int nor the names of other
1717 contributors may be used to endorse or promote products derived
1818 from this software without specific prior written permission.
1919
README.mddeleted−5
@@ -1,5 +0,0 @@
1−[![Build Status](https://img.shields.io/travis/int-index/transformers-lift.svg)](https://travis-ci.org/int-index/transformers-lift)
2−[![Hackage](https://img.shields.io/hackage/v/transformers-lift.svg)](https://hackage.haskell.org/package/transformers-lift)
3−
4−`transformers-lift` is a simple and lightweight library that provides type
5−classes for lifting operations through monad transformers.
src/Control/Monad/Trans/Lift/CallCC.hs+1−37
@@ -1,6 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3−-- | Lifting the @callCC@ operation.
3+-- | Lift the @callCC@ operation.
44module Control.Monad.Trans.Lift.CallCC
55 ( LiftCallCC(..)
66 , CallCC
@@ -23,16 +23,10 @@ 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
2726import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2827import qualified Control.Monad.Trans.State.Strict as S.Strict
2928import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
3029import 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
3630
3731import Control.Monad.Trans.Lift.StT
3832
@@ -79,68 +73,38 @@ defaultLiftCallCC' t unT callCC f
7973
8074instance LiftCallCC (E.ExceptT e) where
8175 liftCallCC = E.liftCallCC
82− {-# INLINE liftCallCC #-}
8376
8477instance LiftCallCC I.IdentityT where
8578 liftCallCC = I.liftCallCC
86− {-# INLINE liftCallCC #-}
8779
8880instance LiftCallCC L.ListT where
8981 liftCallCC = L.liftCallCC
90− {-# INLINE liftCallCC #-}
9182
9283instance LiftCallCC M.MaybeT where
9384 liftCallCC = M.liftCallCC
94− {-# INLINE liftCallCC #-}
9585
9686instance LiftCallCC (R.ReaderT r) where
9787 liftCallCC = R.liftCallCC
98− {-# INLINE liftCallCC #-}
9988
10089instance Monoid w => LiftCallCC (W.Lazy.WriterT w) where
10190 liftCallCC = W.Lazy.liftCallCC
102− {-# INLINE liftCallCC #-}
10391
10492instance Monoid w => LiftCallCC (W.Strict.WriterT w) where
10593 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 #-}
11194
11295instance Monoid w => LiftCallCC (RWS.Lazy.RWST r w s) where
11396 liftCallCC = RWS.Lazy.liftCallCC
114− {-# INLINE liftCallCC #-}
11597 liftCallCC' = RWS.Lazy.liftCallCC'
116− {-# INLINE liftCallCC' #-}
11798
11899instance Monoid w => LiftCallCC (RWS.Strict.RWST r w s) where
119100 liftCallCC = RWS.Strict.liftCallCC
120− {-# INLINE liftCallCC #-}
121101 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' #-}
129102
130103instance LiftCallCC (S.Lazy.StateT s) where
131104 liftCallCC = S.Lazy.liftCallCC
132− {-# INLINE liftCallCC #-}
133105 liftCallCC' = S.Lazy.liftCallCC'
134− {-# INLINE liftCallCC' #-}
135106
136107instance LiftCallCC (S.Strict.StateT s) where
137108 liftCallCC = S.Strict.liftCallCC
138− {-# INLINE liftCallCC #-}
139109 liftCallCC' = S.Strict.liftCallCC'
140− {-# INLINE liftCallCC' #-}
141110
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+1−32
@@ -1,6 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3−-- | Lifting the @catch@ operation.
3+-- | Lift the @catch@ operation.
44module Control.Monad.Trans.Lift.Catch
55 ( LiftCatch(..)
66 , Catch
@@ -22,16 +22,10 @@ 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
2625import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2726import qualified Control.Monad.Trans.State.Strict as S.Strict
2827import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
2928import 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
3529
3630import Control.Monad.Trans.Lift.StT
3731
@@ -56,58 +50,33 @@ defaultLiftCatch t unT f m h = t $ liftCatch f (unT m) (unT . h)
5650
5751instance LiftCatch (E.ExceptT e) where
5852 liftCatch f m h = E.ExceptT $ f (E.runExceptT m) (E.runExceptT . h)
59− {-# INLINE liftCatch #-}
6053
6154instance LiftCatch I.IdentityT where
6255 liftCatch = I.liftCatch
63− {-# INLINE liftCatch #-}
6456
6557instance LiftCatch L.ListT where
6658 liftCatch = L.liftCatch
67− {-# INLINE liftCatch #-}
6859
6960instance LiftCatch M.MaybeT where
7061 liftCatch = M.liftCatch
71− {-# INLINE liftCatch #-}
7262
7363instance LiftCatch (R.ReaderT r) where
7464 liftCatch = R.liftCatch
75− {-# INLINE liftCatch #-}
7665
7766instance Monoid w => LiftCatch (RWS.Lazy.RWST r w s) where
7867 liftCatch = RWS.Lazy.liftCatch
79− {-# INLINE liftCatch #-}
8068
8169instance Monoid w => LiftCatch (RWS.Strict.RWST r w s) where
8270 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 #-}
8871
8972instance LiftCatch (S.Lazy.StateT s) where
9073 liftCatch = S.Lazy.liftCatch
91− {-# INLINE liftCatch #-}
9274
9375instance LiftCatch (S.Strict.StateT s) where
9476 liftCatch = S.Strict.liftCatch
95− {-# INLINE liftCatch #-}
9677
9778instance Monoid w => LiftCatch (W.Lazy.WriterT w) where
9879 liftCatch = W.Lazy.liftCatch
99− {-# INLINE liftCatch #-}
10080
10181instance Monoid w => LiftCatch (W.Strict.WriterT w) where
10282 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+11−45
@@ -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
src/Control/Monad/Trans/Lift/Local.hs+1−33
@@ -1,6 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3−-- | Lifting the 'local' operation.
3+-- | Lift the 'local' operation.
44module Control.Monad.Trans.Lift.Local
55 ( LiftLocal(..)
66 , Local
@@ -22,16 +22,10 @@ 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
2625import qualified Control.Monad.Trans.State.Lazy as S.Lazy
2726import qualified Control.Monad.Trans.State.Strict as S.Strict
2827import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
2928import 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
3529
3630-- | Signature of the @local@ operation,
3731-- introduced in "Control.Monad.Trans.Reader".
@@ -57,62 +51,36 @@ defaultLiftLocal t unT a l f = t . liftLocal a l f . unT
5751
5852instance LiftLocal (C.ContT r) where
5953 liftLocal a l f = C.liftLocal a l f
60− {-# INLINE liftLocal #-}
6154
6255instance LiftLocal (E.ExceptT e) where
6356 liftLocal _ l f = E.mapExceptT (l f)
64− {-# INLINE liftLocal #-}
6557
6658instance LiftLocal I.IdentityT where
6759 liftLocal _ l f = I.mapIdentityT (l f)
68− {-# INLINE liftLocal #-}
6960
7061instance LiftLocal L.ListT where
7162 liftLocal _ l f = L.mapListT (l f)
72− {-# INLINE liftLocal #-}
7363
7464instance LiftLocal M.MaybeT where
7565 liftLocal _ l f = M.mapMaybeT (l f)
76− {-# INLINE liftLocal #-}
7766
7867instance LiftLocal (R.ReaderT r) where
7968 liftLocal _ l f = R.mapReaderT (l f)
80− {-# INLINE liftLocal #-}
8169
8270instance Monoid w => LiftLocal (RWS.Lazy.RWST r w s) where
8371 liftLocal _ l f = RWS.Lazy.mapRWST (l f)
84− {-# INLINE liftLocal #-}
8572
8673instance Monoid w => LiftLocal (RWS.Strict.RWST r w s) where
8774 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 #-}
9375
9476instance LiftLocal (S.Lazy.StateT s) where
9577 liftLocal _ l f = S.Lazy.mapStateT (l f)
96− {-# INLINE liftLocal #-}
9778
9879instance LiftLocal (S.Strict.StateT s) where
9980 liftLocal _ l f = S.Strict.mapStateT (l f)
100− {-# INLINE liftLocal #-}
10181
10282instance Monoid w => LiftLocal (W.Lazy.WriterT w) where
10383 liftLocal _ l f = W.Lazy.mapWriterT (l f)
104− {-# INLINE liftLocal #-}
10584
10685instance Monoid w => LiftLocal (W.Strict.WriterT w) where
10786 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+11−46
@@ -1,7 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE RankNTypes #-}
3−
4−-- | Lifting the 'pass' operation.
3+-- | Lift the 'pass' operation.
54module Control.Monad.Trans.Lift.Pass
65 ( LiftPass(..)
76 , Pass
@@ -16,22 +15,16 @@ import Data.Monoid
1615import Control.Monad.Signatures
1716import Control.Monad.Trans.Class
1817
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
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
3528
3629import Control.Monad.Trans.Lift.StT
3730
@@ -57,66 +50,38 @@ defaultLiftPass t unT pass m = t $ liftPass pass (unT m)
5750
5851instance LiftPass (E.ExceptT e) where
5952 liftPass = E.liftPass
60− {-# INLINE liftPass #-}
6153
6254instance LiftPass I.IdentityT where
6355 liftPass = I.mapIdentityT
64− {-# INLINE liftPass #-}
6556
6657instance LiftPass M.MaybeT where
6758 liftPass = M.liftPass
68− {-# INLINE liftPass #-}
6959
7060instance LiftPass (R.ReaderT r) where
7161 liftPass = R.mapReaderT
72− {-# INLINE liftPass #-}
7362
7463instance LiftPass (S.Lazy.StateT s) where
7564 liftPass = S.Lazy.liftPass
76− {-# INLINE liftPass #-}
7765
7866instance LiftPass (S.Strict.StateT s) where
7967 liftPass = S.Strict.liftPass
80− {-# INLINE liftPass #-}
8168
8269instance Monoid w' => LiftPass (RWS.Lazy.RWST r w' s) where
8370 liftPass pass m = RWS.Lazy.RWST $ \r s -> pass $ do
8471 ~((a, f), w', s') <- RWS.Lazy.runRWST m r s
8572 return ((a, w', s'), f)
86− {-# INLINE liftPass #-}
8773
8874instance Monoid w' => LiftPass (RWS.Strict.RWST r w' s) where
8975 liftPass pass m = RWS.Strict.RWST $ \r s -> pass $ do
9076 ((a, f), w', s') <- RWS.Strict.runRWST m r s
9177 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 #-}
9978
10079instance Monoid w' => LiftPass (W.Lazy.WriterT w') where
10180 liftPass pass m = W.Lazy.WriterT $ pass $ do
10281 ~((a, f), w') <- W.Lazy.runWriterT m
10382 return ((a, w'), f)
104− {-# INLINE liftPass #-}
10583
10684instance Monoid w' => LiftPass (W.Strict.WriterT w') where
10785 liftPass pass m = W.Strict.WriterT $ pass $ do
10886 ((a, f), w') <- W.Strict.runWriterT m
10987 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+1−15
@@ -1,7 +1,5 @@
1−{-# LANGUAGE CPP #-}
21{-# LANGUAGE TypeFamilies #-}
32{-# LANGUAGE KindSignatures #-}
4−
53-- | The 'StT' type family.
64module Control.Monad.Trans.Lift.StT (StT) where
75
@@ -12,16 +10,10 @@ import qualified Control.Monad.Trans.Maybe as M
1210import qualified Control.Monad.Trans.Reader as R
1311import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
1412import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
15−import qualified Control.Monad.Trans.RWS.CPS as RWS.CPS
1613import qualified Control.Monad.Trans.State.Lazy as S.Lazy
1714import qualified Control.Monad.Trans.State.Strict as S.Strict
1815import qualified Control.Monad.Trans.Writer.Lazy as W.Lazy
1916import 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
2517
2618-- | Internal state of a monad transformer.
2719-- Same as @StT@ from the @monad-control@ package.
@@ -34,13 +26,7 @@ type instance StT M.MaybeT a = Maybe a
3426type instance StT (R.ReaderT r) a = a
3527type instance StT (RWS.Lazy.RWST r w s) a = (a, s, w)
3628type 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)
3829type instance StT (S.Lazy.StateT s) a = (a, s)
3930type instance StT (S.Strict.StateT s) a = (a, s)
40−type instance StT (W.Lazy.WriterT w) a = (a, w)
4131type 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
32+type instance StT (W.Lazy.WriterT w) a = (a, w)
stack-7.8.3.yamldeleted−7
@@ -1,7 +0,0 @@
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.yamldeleted−4
@@ -1,4 +0,0 @@
1−flags: {}
2−packages:
3−- '.'
4−resolver: nightly-2018-03-17
transformers-lift.cabal+8−13
@@ -1,19 +1,18 @@
1−cabal-version: 2.2
21name: transformers-lift
3−version: 0.2.0.2
2+version: 0.1.0.0
43synopsis: Ad-hoc type classes for lifting
54description:
65 This simple and lightweight library provides type classes
76 for lifting monad transformer operations.
87
9−-- license: BSD3
10−-- ^ unfortunately have to comment this line because of cabal2nix
8+license: BSD3
119license-file: LICENSE
12−author: Vladislav Zavialov
13−maintainer: Vladislav Zavialov <vlad.z.4096@gmail.com>
10+author: Index Int
11+maintainer: Index Int <vlad.z.4096@gmail.com>
1412category: Control
1513bug-reports: https://github.com/int-index/transformers-lift/issues
1614build-type: Simple
15+cabal-version: >=1.10
1716
1817library
1918 exposed-modules: Control.Monad.Trans.Lift.Local
@@ -23,12 +22,8 @@ library
2322 Control.Monad.Trans.Lift.Pass
2423 Control.Monad.Trans.Lift.StT
2524
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)
25+ build-depends: base >=4.6 && <4.9
26+ , transformers >= 0.4.2
3227
3328 default-language: Haskell2010
3429 other-extensions: CPP
@@ -37,4 +32,4 @@ library
3732 KindSignatures
3833
3934 hs-source-dirs: src
40− ghc-options: -Wall -fno-warn-deprecations
35+ ghc-options: -Wall