anchor.diff:          member self.GetValue() = self.GetValue() :> obj
           member self.Config = self.Config
   
  -/// Counter tracking the maximum count per second within a specified interval
  +/// Counter tracking the maximum count per step within a specified interval
   type PeakRateCounter(config : MonitorConfig, step) =
       let currentSecond = new AtomicLong()
       let currentCount = new AtomicLong()
  
positive.code:     member __.Increment() = value.Increment(1L) |> ignore
      /// Increment the counter by the specified amount
      member __.Increment(amount) = if amount > 0L then value.Increment(amount) |> ignore
      /// Gets rate of events per second
      member __.GetValue() : double =
          let datapoint = value.Poll()
          if datapoint = Datapoint.Empty then Double.NaN
  
negative.code:         if amount > 0.0 then add amount
      /// Increment the value by one
      member self.Increment() = self.Increment(1.0)
      /// Gets the rate per step
      member __.GetValue() =
          let datapoint = count.Poll()
          if datapoint = Datapoint.Empty then Double.NaN
          else (datapoint.Value |> BitConverter.Int64BitsToDouble) / stepMilliseconds
      /// Gets the configuration
      member __.Config = config.WithTag(DataSourceType.Rate)
  
  