Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Tracer.Transformers.ObserveOutcome
Contents
Description
Observing events with annotations of thread id and time.
Synopsis
- class Monad m => Outcome m a where
- type IntermediateValue a
- type OutcomeMetric a
- classifyObservable :: a -> m OutcomeProgressionStatus
- captureObservableValue :: a -> m (IntermediateValue a)
- computeOutcomeMetric :: a -> IntermediateValue a -> IntermediateValue a -> m (OutcomeMetric a)
- data OutcomeProgressionStatus
- mkOutcomeExtractor :: (MonadIO m, Outcome m a) => m (OutcomeEnhancedTracer m a -> Tracer m a)
transformer
class Monad m => Outcome m a where Source #
Methods
classifyObservable :: a -> m OutcomeProgressionStatus Source #
captureObservableValue :: a -> m (IntermediateValue a) Source #
computeOutcomeMetric :: a -> IntermediateValue a -> IntermediateValue a -> m (OutcomeMetric a) Source #
data OutcomeProgressionStatus Source #
Constructors
OutcomeStarts | |
OutcomeOther | |
OutcomeEnds |
Instances
Eq OutcomeProgressionStatus Source # | |
Defined in Control.Tracer.Transformers.ObserveOutcome Methods (==) :: OutcomeProgressionStatus -> OutcomeProgressionStatus -> Bool Source # (/=) :: OutcomeProgressionStatus -> OutcomeProgressionStatus -> Bool Source # |
mkOutcomeExtractor :: (MonadIO m, Outcome m a) => m (OutcomeEnhancedTracer m a -> Tracer m a) Source #
Generic Trace transformer (reactive). It could be written to take an initial argument, but restricting the scope of that per-invocation state seems more appropriate (for the moment). That may be of use if/when explict management of timeout was required and/or non-termination of the outcome at the end of a run was of interest.