anchor.diff:          lockWithArg syncRoot elapsed updateStatistics'
       
       let record f = 
  -        let (result, elapsed) = Stopwatch.Time(fun () -> f())
  +        let stopwatch = stopwatchFactory.Invoke()
  +        let (result, elapsed) = stopwatch.Time(fun () -> f())
           elapsed |> updateStatistics
           result
   
  
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:         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())
  