{-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE MultiParamTypeClasses , FlexibleInstances , UndecidableInstances #-} {-| This module just defines an instance of 'MonadBase' for 'ComposeT'. See also <https://github.com/mvv/transformers-base/issues/12> -} module Control.Monad.Base.Compose where import Control.Monad.Base (MonadBase(liftBase), liftBaseDefault) import Control.Monad.Morph (MFunctor) import Control.Monad.Trans.Class (MonadTrans) import Control.Monad.Trans.Compose (ComposeT) instance ( MonadBase b m, MFunctor f, MonadTrans f, MonadTrans g, Monad (f (g m)) ) => MonadBase b (ComposeT f g m) where liftBase = liftBaseDefault