on master help sign in
Fix GHC 7.8 support
commitb94a04b82f4b122c91fe2ad50035514c47d92cab authorIndex Int <vlad.z.4096@gmail.com> dateTue 26 Jan 2016, 12:56 (11 years ago) parentd2993e1
3 files changed+18−5
ether.cabal−1 src/Control/Ether/TT.hs+5−2 src/Control/Ether/Util.hs+13−2
ether.cabal−1
@@ -76,7 +76,6 @@ library
7676 FunctionalDependencies
7777 GeneralizedNewtypeDeriving
7878 MultiParamTypeClasses
79− PolyKinds
8079 ScopedTypeVariables
8180 TemplateHaskell
8281 TypeFamilies
src/Control/Ether/TT.hs+5−2
@@ -4,6 +4,7 @@
44{-# LANGUAGE PolyKinds #-}
55{-# LANGUAGE MultiParamTypeClasses #-}
66{-# LANGUAGE UndecidableInstances #-}
7+{-# LANGUAGE ConstraintKinds #-}
78{-# LANGUAGE TypeFamilies #-}
89module Control.Ether.TT where
910
@@ -34,6 +35,8 @@ import qualified Control.Monad.Error.Class as Class
3435import GHC.Generics (Generic)
3536import Data.Coerce (coerce)
3637
38+import Control.Ether.Util (MonadApplicative)
39+
3740-- | Tagged monad transformer.
3841newtype TT tag trans (m :: * -> *) a = TT (trans m a)
3942 deriving
@@ -63,7 +66,7 @@ unpack = coerce
6366instance
6467 ( MB.MonadBase b m
6568 , MonadTrans trans
66− , Monad (trans m)
69+ , MonadApplicative (trans m)
6770 ) => MB.MonadBase b (TT tag trans m)
6871 where
6972 liftBase = MB.liftBaseDefault
@@ -79,7 +82,7 @@ instance
7982instance
8083 ( MC.MonadBaseControl b m
8184 , MC.MonadTransControl trans
82− , Monad (trans m)
85+ , MonadApplicative (trans m)
8386 ) => MC.MonadBaseControl b (TT tag trans m)
8487 where
8588 type StM (TT tag trans m) a = MC.ComposeSt trans m a
src/Control/Ether/Util.hs+13−2
@@ -1,11 +1,14 @@
11{-# LANGUAGE CPP #-}
2+{-# LANGUAGE ConstraintKinds #-}
23module Control.Ether.Util
3− ( fmap
4− ) where
4+ ( fmap
5+ , MonadApplicative
6+ ) where
57
68import Prelude hiding (fmap)
79
810#if __GLASGOW_HASKELL__ < 710
11+import qualified Control.Applicative
912import qualified Control.Monad
1013#else
1114import qualified Prelude
@@ -20,3 +23,11 @@ fmap = Prelude.fmap
2023#endif
2124
2225{-# INLINE fmap #-}
26+
27+#if __GLASGOW_HASKELL__ < 710
28+type MonadApplicative m =
29+ ( Control.Applicative.Applicative m
30+ , Control.Monad.Monad m )
31+#else
32+type MonadApplicative = Monad
33+#endif