monad-time-effectful-1.0.0.0: Adaptation of the monad-time library for the effectful ecosystem.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Effectful.Time

Description

Time measurement via MonadTime.

Synopsis

Effect

data Time :: Effect where Source #

Provide the ability to use the MonadTime instance of Eff.

Constructors

CurrentTime :: Time m UTCTime 
MonotonicTime :: Time m Double 

Instances

Instances details
type DispatchOf Time Source # 
Instance details

Defined in Effectful.Time

class Monad m => MonadTime (m :: Type -> Type) where #

Class of monads which make it possible to measure time.

Instances

Instances details
MonadTime IO

Base instance for IO.

Instance details

Defined in Control.Monad.Time

Time :> es => MonadTime (Eff es) Source # 
Instance details

Defined in Effectful.Time

(MonadTime m, MonadTrans t, Monad (t m)) => MonadTime (t m)

Generic, overlapping instance.

Instance details

Defined in Control.Monad.Time

Handlers

runTime :: IOE :> es => Eff (Time ': es) a -> Eff es a Source #

Run a Time effect via IO.

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.

Orphan instances

Time :> es => MonadTime (Eff es) Source # 
Instance details