time-warp-1.1.1.2: Distributed systems execution emulation

Copyright(c) Serokell 2016
LicenseGPL-3 (see the file LICENSE)
MaintainerSerokell <hi@serokell.io>
Stabilityexperimental
PortabilityPOSIX, GHC
Safe HaskellNone
LanguageHaskell2010

Control.TimeWarp.Timed.TimedT

Description

This module contains pure implementation of MonadTimed.

Synopsis

Documentation

data TimedT m a Source #

Instances

MonadTrans TimedT Source # 

Methods

lift :: Monad m => m a -> TimedT m a #

MonadState s m => MonadState s (TimedT m) Source # 

Methods

get :: TimedT m s #

put :: s -> TimedT m () #

state :: (s -> (a, s)) -> TimedT m a #

Monad (TimedT m) Source # 

Methods

(>>=) :: TimedT m a -> (a -> TimedT m b) -> TimedT m b #

(>>) :: TimedT m a -> TimedT m b -> TimedT m b #

return :: a -> TimedT m a #

fail :: String -> TimedT m a #

Functor (TimedT m) Source # 

Methods

fmap :: (a -> b) -> TimedT m a -> TimedT m b #

(<$) :: a -> TimedT m b -> TimedT m a #

Applicative (TimedT m) Source # 

Methods

pure :: a -> TimedT m a #

(<*>) :: TimedT m (a -> b) -> TimedT m a -> TimedT m b #

(*>) :: TimedT m a -> TimedT m b -> TimedT m b #

(<*) :: TimedT m a -> TimedT m b -> TimedT m a #

MonadIO m => MonadIO (TimedT m) Source # 

Methods

liftIO :: IO a -> TimedT m a #

MonadThrow m => MonadThrow (TimedT m) Source #

When non-main thread dies from uncaught exception, this is reported via logger (see WithNamedLogger). ThreadKilled exception is reported with Debug severity, and other exceptions with Warn severity. Uncaught exception in main thread (the one isn't produced by fork) is propagaded outside of the monad.

Methods

throwM :: Exception e => e -> TimedT m a #

MonadCatch m => MonadCatch (TimedT m) Source # 

Methods

catch :: Exception e => TimedT m a -> (e -> TimedT m a) -> TimedT m a #

(MonadIO m, MonadCatch m) => MonadMask (TimedT m) Source #

This instance is incorrect, i.e. mask and uninterruptibleMask do nothing for now.

Methods

mask :: ((forall a. TimedT m a -> TimedT m a) -> TimedT m b) -> TimedT m b #

uninterruptibleMask :: ((forall a. TimedT m a -> TimedT m a) -> TimedT m b) -> TimedT m b #

CanLog m => CanLog (TimedT m) Source # 
HasLoggerName (TimedT m) Source # 
(CanLog m, MonadIO m, MonadThrow m, MonadCatch m) => MonadTimed (TimedT m) Source # 
type ThreadId (TimedT m) Source # 

runTimedT :: (MonadIO m, MonadCatch m) => TimedT m a -> m a Source #

Launches the scenario emulating threads and time. Finishes when no more active threads remain.

defaultLoggerName :: LoggerName Source #

Name which is used by logger (see WithNamedLogger) if no other one was specified.