anchor.diff:          let result = self.GetValues() |> Seq.toList
           reset'()
           result |> List.toSeq
  +
  +    new(config: MonitorConfig) = BasicTimer(config, fun () -> SystemStopwatch() :> IStopwatch)
       
       /// Time a System.Func call and return the value
       member __.Record(f : Func<'T>) = record (fun () -> f.Invoke())
  
positive.code:     abstract Register : int64 -> unit
  
  /// A simple timer providing the total time, count, min and max for the times that have been recorded
  type BasicTimer(config : MonitorConfig) as self = 
      
      [<Literal>]
      let StatisticKey = "statistic"
  
negative.code:         lockWithArg syncRoot elapsed updateStatistics'
      
      let record f = 
          let stopwatch = stopwatchFactory.Invoke()
          let (result, elapsed) = stopwatch.Time(fun () -> f())
          elapsed |> updateStatistics
          result
  
  