Skip to content

Commit 7d0a380

Browse files
committed
si-timers: mtl instances for MonadMonotonicTime
1 parent 59e6b45 commit 7d0a380

File tree

1 file changed

+25
-0
lines changed
  • si-timers/src/Control/Monad/Class/MonadTime

1 file changed

+25
-0
lines changed

si-timers/src/Control/Monad/Class/MonadTime/SI.hs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ module Control.Monad.Class.MonadTime.SI
1717
, NominalDiffTime
1818
) where
1919

20+
import Control.Monad.Cont
21+
import Control.Monad.RWS
22+
import Control.Monad.Reader
23+
import Control.Monad.State
24+
import Control.Monad.Writer
25+
2026
import Control.Monad.Class.MonadTime ( MonadMonotonicTimeNSec,
2127
MonadTime (..), NominalDiffTime, UTCTime, diffUTCTime,
2228
addUTCTime)
@@ -56,3 +62,22 @@ class MonadMonotonicTimeNSec m => MonadMonotonicTime m where
5662
conv = Time . Time.picosecondsToDiffTime . (* 1_000) . toInteger
5763

5864
instance MonadMonotonicTime IO where
65+
66+
--
67+
-- MTL instances
68+
--
69+
70+
instance MonadMonotonicTime m => MonadMonotonicTime (ReaderT r m) where
71+
getMonotonicTime = lift getMonotonicTime
72+
73+
instance MonadMonotonicTime m => MonadMonotonicTime (StateT s m) where
74+
getMonotonicTime = lift getMonotonicTime
75+
76+
instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (WriterT w m) where
77+
getMonotonicTime = lift getMonotonicTime
78+
79+
instance (Monoid w, MonadMonotonicTime m) => MonadMonotonicTime (RWST r w s m) where
80+
getMonotonicTime = lift getMonotonicTime
81+
82+
instance MonadMonotonicTime m => MonadMonotonicTime (ContT r m) where
83+
getMonotonicTime = lift getMonotonicTime

0 commit comments

Comments
 (0)