@@ -4,6 +4,7 @@
4{-# LANGUAGE PolyKinds #-}
4{-# LANGUAGE PolyKinds #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE UndecidableInstances #-}
6{-# LANGUAGE UndecidableInstances #-}
7+{-# LANGUAGE ConstraintKinds #-}
7{-# LANGUAGE TypeFamilies #-}
8{-# LANGUAGE TypeFamilies #-}
8module Control.Ether.TT where
9module Control.Ether.TT where
@@ -34,6 +35,8 @@ import qualified Control.Monad.Error.Class as Class
34import GHC.Generics (Generic)
35import GHC.Generics (Generic)
35import Data.Coerce (coerce)
36import Data.Coerce (coerce)
38+import Control.Ether.Util (MonadApplicative)
37-- | Tagged monad transformer.
40-- | Tagged monad transformer.
38newtype TT tag trans (m :: * -> *) a = TT (trans m a)
41newtype TT tag trans (m :: * -> *) a = TT (trans m a)
@@ -63,7 +66,7 @@ unpack = coerce
64 ( MB.MonadBase b m
67 ( MB.MonadBase b m
65 , MonadTrans trans
68 , MonadTrans trans
66− , Monad (trans m)
69+ , MonadApplicative (trans m)
67 ) => MB.MonadBase b (TT tag trans m)
70 ) => MB.MonadBase b (TT tag trans m)
69 liftBase = MB.liftBaseDefault
72 liftBase = MB.liftBaseDefault
@@ -79,7 +82,7 @@ instance
80 ( MC.MonadBaseControl b m
83 ( MC.MonadBaseControl b m
81 , MC.MonadTransControl trans
84 , MC.MonadTransControl trans
82− , Monad (trans m)
85+ , MonadApplicative (trans m)
83 ) => MC.MonadBaseControl b (TT tag trans m)
86 ) => MC.MonadBaseControl b (TT tag trans m)
85 type StM (TT tag trans m) a = MC.ComposeSt trans m a
88 type StM (TT tag trans m) a = MC.ComposeSt trans m a