Copyright | (c) Ian Duncan 2013 |
---|---|
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Data.Metrics.Counter
Description
An incrementing and decrementing counter metric
import Data.Metrics.Counter main :: IO () main = do c <- counter increment c x <- value c print $ x == 1
Synopsis
- data Counter (m :: Type -> Type)
- counter :: forall (b :: Type -> Type) m. (MonadBase b m, PrimMonad b) => m (Counter b)
- increment :: PrimMonad m => Counter m -> m ()
- increment' :: PrimMonad m => Counter m -> Int -> m ()
- decrement :: PrimMonad m => Counter m -> m ()
- decrement' :: PrimMonad m => Counter m -> Int -> m ()
- module Data.Metrics.Types
Documentation
data Counter (m :: Type -> Type) Source #
A basic atomic counter.
Instances
(MonadBase b m, PrimMonad b) => Clear b m (Counter b) Source # | |
Defined in Data.Metrics.Counter | |
(MonadBase b m, PrimMonad b) => Count b m (Counter b) Source # | |
(MonadBase b m, PrimMonad b) => Set b m (Counter b) Int Source # | |
(MonadBase b m, PrimMonad b) => Value b m (Counter b) Int Source # | |
Register (Counter IO) Source # | |
counter :: forall (b :: Type -> Type) m. (MonadBase b m, PrimMonad b) => m (Counter b) Source #
Create a new counter.
decrement' :: PrimMonad m => Counter m -> Int -> m () Source #
Subtract an arbitrary amount from a counter.
module Data.Metrics.Types