|
| 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 |