@@ -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