git.iko.soy/typeable/transformers-lift
on master help sign in
Compile without warnings
commit89e514bb198034daeeb6efaf8d3bb6044ba737a8 authorIndex Int <vlad.z.4096@gmail.com> dateFri 19 Jun 2015, 15:24 (11 years ago) parent17effc5
6 files changed+39−9
src/Control/Monad/Trans/Lift/CallCC.hs+3−1 src/Control/Monad/Trans/Lift/Catch.hs+5−3 src/Control/Monad/Trans/Lift/Listen.hs+9−1 src/Control/Monad/Trans/Lift/Local.hs+3 src/Control/Monad/Trans/Lift/Pass.hs+9−1 transformers-lift.cabal+10−3
src/Control/Monad/Trans/Lift/CallCC.hs+3−1
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE TypeFamilies #-}
23{-# LANGUAGE UndecidableInstances #-}
34module Control.Monad.Trans.Lift.CallCC
@@ -6,7 +7,9 @@ module Control.Monad.Trans.Lift.CallCC
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
@@ -17,7 +20,6 @@ import qualified Control.Monad.Trans.Identity as I
1720import qualified Control.Monad.Trans.List as L
1821import qualified Control.Monad.Trans.Maybe as M
1922import qualified Control.Monad.Trans.Reader as R
20−import qualified Control.Monad.Trans.Cont as C
2123import qualified Control.Monad.Trans.RWS.Lazy as RWS.Lazy
2224import qualified Control.Monad.Trans.RWS.Strict as RWS.Strict
2325import qualified Control.Monad.Trans.State.Lazy as S.Lazy
src/Control/Monad/Trans/Lift/Catch.hs+5−3
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE TypeFamilies #-}
23{-# LANGUAGE UndecidableInstances #-}
34{-# LANGUAGE DefaultSignatures #-}
@@ -7,7 +8,9 @@ module Control.Monad.Trans.Lift.Catch
78 , module Control.Monad.Trans.Class
89 ) where
910
11+#if __GLASGOW_HASKELL__ < 710
1012import Data.Monoid
13+#endif
1114
1215import Control.Monad.Signatures
1316import Control.Monad.Trans.Class
@@ -18,7 +21,6 @@ import Control.Monad.Trans.Identity
1821import Control.Monad.Trans.List
1922import Control.Monad.Trans.Maybe
2023import Control.Monad.Trans.Reader
21−import qualified Control.Monad.Trans.Cont as Cont
2224import qualified Control.Monad.Trans.RWS.Lazy as Lazy
2325import qualified Control.Monad.Trans.RWS.Strict as Strict
2426import qualified Control.Monad.Trans.State.Lazy as Lazy
@@ -33,8 +35,8 @@ class MonadTrans t => LiftCatch t where
3335 default liftCatch
3436 :: (MonadTransControl t, CatchStT t a ~ StT t a, Monad m, Monad (t m))
3537 => Catch e m (CatchStT t a) -> Catch e (t m) a
36− liftCatch catchE m h = do
37− liftWith (\run -> catchE (run m) (run . h)) >>= restoreT . return
38+ liftCatch catch m h = do
39+ liftWith (\run -> catch (run m) (run . h)) >>= restoreT . return
3840
3941instance LiftCatch (ExceptT e)
4042instance LiftCatch IdentityT
src/Control/Monad/Trans/Lift/Listen.hs+9−1
@@ -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)
src/Control/Monad/Trans/Lift/Local.hs+3
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE RankNTypes #-}
23{-# LANGUAGE DefaultSignatures #-}
34module Control.Monad.Trans.Lift.Local
@@ -6,7 +7,9 @@ module Control.Monad.Trans.Lift.Local
67 , module Control.Monad.Trans.Class
78 ) where
89
10+#if __GLASGOW_HASKELL__ < 710
911import Data.Monoid
12+#endif
1013
1114import Control.Monad.Trans.Class
1215import Control.Monad.Morph
src/Control/Monad/Trans/Lift/Pass.hs+9−1
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE TypeFamilies #-}
23{-# LANGUAGE UndecidableInstances #-}
34module Control.Monad.Trans.Lift.Pass
@@ -6,7 +7,9 @@ module Control.Monad.Trans.Lift.Pass
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 LiftPass (S.Lazy.StateT s) where
4850instance LiftPass (S.Strict.StateT s) where
4951 liftPass = S.Strict.liftPass
5052
53+instance Monoid w' => LiftPass (RWS.Lazy.RWST r w' s) where
54+ liftPass = error "TODO"
55+
56+instance Monoid w' => LiftPass (RWS.Strict.RWST r w' s) where
57+ liftPass = error "TODO"
58+
5159instance Monoid w' => LiftPass (W.Lazy.WriterT w') where
5260 liftPass pass m = W.Lazy.WriterT $ pass $ do
5361 ~((a, f), w) <- W.Lazy.runWriterT m
transformers-lift.cabal+10−3
@@ -1,5 +1,5 @@
11name: transformers-lift
2−version: 0.1.0.0
2+version: 0.0.0.0
33synopsis: Ad-hoc type classes for lifting
44-- description:
55license: BSD3
@@ -19,10 +19,17 @@ library
1919 Control.Monad.Trans.Lift.Listen
2020 Control.Monad.Trans.Lift.Pass
2121 -- other-modules:
22− -- other-extensions:
2322 build-depends: base >=4.7 && <4.9
2423 , transformers >= 0.4.2
2524 , mmorph >= 1.0.4
2625 , monad-control >= 1.0.0.4
27− hs-source-dirs: src
26+
2827 default-language: Haskell2010
28+ other-extensions: CPP
29+ DefaultSignatures
30+ RankNTypes
31+ TypeFamilies
32+ UndecidableInstances
33+
34+ hs-source-dirs: src
35+ ghc-options: -Wall