|
MetricsTheme | Portability | portable | Stability | experimental | Maintainer | Ralf Laemmel, Joost Visser |
|
|
|
|
|
Description |
This module is part of StrategyLib, a library of functional strategy
combinators, including combinators for generic traversal. This module
defines combinators to define metrics extractors. |
|
Synopsis |
|
|
|
|
An abstract datatype for metrics |
|
type Metrics = MetricName -> Integer |
The type of metrics |
|
type MetricName = String |
The type of metric names |
|
initMetrics :: Integer -> Metrics |
Create Metrics with given initial value for all metrics. |
|
initMetrics0 :: Metrics |
Create Metrics with 0 as initial value for all metrics. |
|
incMetrics :: MetricName -> Integer -> Metrics -> Metrics |
Create Metrics with
initTypeMetrics :: MetricName -> a -> Metrics
initTypeMetrics key _ = incMetrics1 key initMetrics0 Increment metric with the given name with the given value. |
|
incMetrics1 :: MetricName -> Metrics -> Metrics |
Increment metric with the given name by 1. |
|
putMetricLn :: MetricName -> Metrics -> IO () |
Print value of metric with the given name. |
|
Metrics as monoids |
|
Strategy combinators for metrics |
|
typeMetric |
:: (MonadPlus m, Term a) | | => TU Metrics m | Metric collecting strategy | -> (MetricName, a -> ()) | Name of the metric and type guard | -> TU Metrics m | Strategy that additionally collects type-based metrics | Additionally collect type-based metrics. |
|
|
predMetric |
:: (MonadPlus m, Term b) | | => TU Metrics m | Strategy that collects metrics | -> (MetricName, b -> m ()) | Name of the metric, and predicate | -> TU Metrics m | Strategy that additionally collects predicate-based metric | Additionally collect predicate-based metrics. |
|
|
Generic metric algorithms |
|
depthWith |
:: MonadPlus m | | => TU () m | Recognize relevant contructs | -> TU Int m | Count nesting depth of relevant constructs. | Generic algorithm for computing nesting depth |
|
|
Produced by Haddock version 0.6 |