{-# OPTIONS_GHC -Wno-orphans #-} module Control.Monad.Class.MonadTime.SI.Trans () where import Control.Monad.Cont (ContT) import Control.Monad.Except (ExceptT) import Control.Monad.RWS.Lazy qualified as Lazy import Control.Monad.RWS.Strict qualified as Strict import Control.Monad.State.Lazy qualified as Lazy import Control.Monad.State.Strict qualified as Strict import Control.Monad.Trans (lift) import Control.Monad.Writer.Lazy qualified as Lazy import Control.Monad.Writer.Strict qualified as Strict import Control.Monad.Class.MonadTime.SI import Control.Monad.Class.MonadTime.Trans () instance MonadMonotonicTime m => MonadMonotonicTime (ExceptT e m) where getMonotonicTime :: ExceptT e m Time getMonotonicTime = m Time -> ExceptT e m Time forall (m :: * -> *) a. Monad m => m a -> ExceptT e m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance MonadMonotonicTime m => MonadMonotonicTime (Lazy.StateT s m) where getMonotonicTime :: StateT s m Time getMonotonicTime = m Time -> StateT s m Time forall (m :: * -> *) a. Monad m => m a -> StateT s m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance MonadMonotonicTime m => MonadMonotonicTime (Strict.StateT s m) where getMonotonicTime :: StateT s m Time getMonotonicTime = m Time -> StateT s m Time forall (m :: * -> *) a. Monad m => m a -> StateT s m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (Lazy.WriterT w m) where getMonotonicTime :: WriterT w m Time getMonotonicTime = m Time -> WriterT w m Time forall (m :: * -> *) a. Monad m => m a -> WriterT w m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (Strict.WriterT w m) where getMonotonicTime :: WriterT w m Time getMonotonicTime = m Time -> WriterT w m Time forall (m :: * -> *) a. Monad m => m a -> WriterT w m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (Lazy.RWST r w s m) where getMonotonicTime :: RWST r w s m Time getMonotonicTime = m Time -> RWST r w s m Time forall (m :: * -> *) a. Monad m => m a -> RWST r w s m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (Strict.RWST r w s m) where getMonotonicTime :: RWST r w s m Time getMonotonicTime = m Time -> RWST r w s m Time forall (m :: * -> *) a. Monad m => m a -> RWST r w s m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime instance MonadMonotonicTime m => MonadMonotonicTime (ContT r m) where getMonotonicTime :: ContT r m Time getMonotonicTime = m Time -> ContT r m Time forall (m :: * -> *) a. Monad m => m a -> ContT r m a forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. (MonadTrans t, Monad m) => m a -> t m a lift m Time forall (m :: * -> *). MonadMonotonicTime m => m Time getMonotonicTime