anchor.diff:          if amount > 0.0 then add amount
       /// Increment the value by one
       member self.Increment() = self.Increment(1.0)
  -    /// Gets the rate per second
  +    /// Gets the rate per step
       member __.GetValue() =
           let datapoint = count.Poll()
           if datapoint = Datapoint.Empty then Double.NaN
  -        else (datapoint.Value |> BitConverter.Int64BitsToDouble) / stepSeconds
  +        else (datapoint.Value |> BitConverter.Int64BitsToDouble) / stepMilliseconds
       /// Gets the configuration
       member __.Config = config.WithTag(DataSourceType.Rate)
   
  
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: 
  /// A simple double counter backed by a StepLong but using doubles. The value is the rate for the previous interval as defined by the step.
  type DoubleCounter(config : MonitorConfig, step : TimeSpan) =
      let stepMilliseconds = double step.TotalMilliseconds
      let count = new StepLong(step)
      let add (amount : double) =
          let current = count.GetCurrent()
  