{-# OPTIONS_GHC -Wno-orphans #-} module Control.Monad.Class.MonadTime.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 instance MonadMonotonicTimeNSec m => MonadMonotonicTimeNSec (ExceptT e m) where getMonotonicTimeNSec :: ExceptT e m Word64 getMonotonicTimeNSec = m Word64 -> ExceptT e m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance MonadMonotonicTimeNSec m => MonadMonotonicTimeNSec (Lazy.StateT s m) where getMonotonicTimeNSec :: StateT s m Word64 getMonotonicTimeNSec = m Word64 -> StateT s m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance MonadMonotonicTimeNSec m => MonadMonotonicTimeNSec (Strict.StateT s m) where getMonotonicTimeNSec :: StateT s m Word64 getMonotonicTimeNSec = m Word64 -> StateT s m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance (Monoid w, MonadMonotonicTimeNSec m) => MonadMonotonicTimeNSec (Lazy.WriterT w m) where getMonotonicTimeNSec :: WriterT w m Word64 getMonotonicTimeNSec = m Word64 -> WriterT w m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance (Monoid w, MonadMonotonicTimeNSec m) => MonadMonotonicTimeNSec (Strict.WriterT w m) where getMonotonicTimeNSec :: WriterT w m Word64 getMonotonicTimeNSec = m Word64 -> WriterT w m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance (Monoid w, MonadMonotonicTimeNSec m) => MonadMonotonicTimeNSec (Lazy.RWST r w s m) where getMonotonicTimeNSec :: RWST r w s m Word64 getMonotonicTimeNSec = m Word64 -> RWST r w s m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance (Monoid w, MonadMonotonicTimeNSec m) => MonadMonotonicTimeNSec (Strict.RWST r w s m) where getMonotonicTimeNSec :: RWST r w s m Word64 getMonotonicTimeNSec = m Word64 -> RWST r w s m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance MonadMonotonicTimeNSec m => MonadMonotonicTimeNSec (ContT r m) where getMonotonicTimeNSec :: ContT r m Word64 getMonotonicTimeNSec = m Word64 -> ContT r m Word64 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 Word64 forall (m :: * -> *). MonadMonotonicTimeNSec m => m Word64 getMonotonicTimeNSec instance MonadTime m => MonadTime (ExceptT e m) where getCurrentTime :: ExceptT e m UTCTime getCurrentTime = m UTCTime -> ExceptT e m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance MonadTime m => MonadTime (Lazy.StateT s m) where getCurrentTime :: StateT s m UTCTime getCurrentTime = m UTCTime -> StateT s m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance MonadTime m => MonadTime (Strict.StateT s m) where getCurrentTime :: StateT s m UTCTime getCurrentTime = m UTCTime -> StateT s m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance (Monoid w, MonadTime m) => MonadTime (Lazy.WriterT w m) where getCurrentTime :: WriterT w m UTCTime getCurrentTime = m UTCTime -> WriterT w m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance (Monoid w, MonadTime m) => MonadTime (Strict.WriterT w m) where getCurrentTime :: WriterT w m UTCTime getCurrentTime = m UTCTime -> WriterT w m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance (Monoid w, MonadTime m) => MonadTime (Lazy.RWST r w s m) where getCurrentTime :: RWST r w s m UTCTime getCurrentTime = m UTCTime -> RWST r w s m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance (Monoid w, MonadTime m) => MonadTime (Strict.RWST r w s m) where getCurrentTime :: RWST r w s m UTCTime getCurrentTime = m UTCTime -> RWST r w s m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime instance MonadTime m => MonadTime (ContT r m) where getCurrentTime :: ContT r m UTCTime getCurrentTime = m UTCTime -> ContT r m UTCTime 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 UTCTime forall (m :: * -> *). MonadTime m => m UTCTime getCurrentTime