|
Data.Generics.Strafunski.StrategyLib.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
|
|
newtype Metrics |
The type of metrics
| Constructors | | Instances | |
|
|
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.8 |