Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 #
type IntermediateValue a Source #
type OutcomeMetric a Source #
classifyObservable :: a -> m OutcomeProgressionStatus Source #
captureObservableValue :: a -> m (IntermediateValue a) Source #
computeOutcomeMetric :: a -> IntermediateValue a -> IntermediateValue a -> m (OutcomeMetric a) Source #
data OutcomeProgressionStatus Source #
Instances
Eq OutcomeProgressionStatus 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.