Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Time measurement via MonadTime
.
Synopsis
- data Time :: Effect where
- CurrentTime :: Time m UTCTime
- MonotonicTime :: Time m Double
- class Monad m => MonadTime (m :: Type -> Type) where
- currentTime :: m UTCTime
- monotonicTime :: m Double
- runTime :: IOE :> es => Eff (Time ': es) a -> Eff es a
- runFrozenTime :: IOE :> es => UTCTime -> Eff (Time ': es) a -> Eff es a
Effect
data Time :: Effect where Source #
CurrentTime :: Time m UTCTime | |
MonotonicTime :: Time m Double |
Instances
type DispatchOf Time Source # | |
Defined in Effectful.Time |
class Monad m => MonadTime (m :: Type -> Type) where #
Class of monads which make it possible to measure time.
currentTime :: m UTCTime #
monotonicTime :: m Double #
Instances
MonadTime IO | Base instance for IO. |
Defined in Control.Monad.Time currentTime :: IO UTCTime # monotonicTime :: IO Double # | |
Time :> es => MonadTime (Eff es) Source # | |
Defined in Effectful.Time currentTime :: Eff es UTCTime # monotonicTime :: Eff es Double # | |
(MonadTime m, MonadTrans t, Monad (t m)) => MonadTime (t m) | Generic, overlapping instance. |
Defined in Control.Monad.Time currentTime :: t m UTCTime # monotonicTime :: t m Double # |
Handlers
runFrozenTime :: IOE :> es => UTCTime -> Eff (Time ': es) a -> Eff es a Source #
Run a Time
effect with a frozen value of the CurrentTime
operation.
Note: the MonotonicTime
operation works the same way as in runTime
.