Skip to content

Commit 1ead67e

Browse files
committed
si-timers: mtl instances for MonadMonotonicTime
1 parent 4efb840 commit 1ead67e

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)
@@ -58,3 +64,22 @@ class MonadMonotonicTimeNSec m => MonadMonotonicTime m where
5864
conv = Time . Time.picosecondsToDiffTime . (* 1_000) . toInteger
5965

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

0 commit comments

Comments
 (0)