anchor.diff:  
       /// Get or add a BasicTimer
       static member BasicTimer(name : string, step) =
  -        let monitorKey = OkanshiMonitor.GetMonitorKey(name, typeof<BasicTimer>)
  +        let monitorKey = OkanshiMonitor.GetMonitorKey(name, typeof<BasicTimer>, [||])
           let factory = fun () -> (new BasicTimer(MonitorConfig.Build(name).WithTags(OkanshiMonitor.DefaultTags), step)) :> IMonitor
           monitorAgent.PostAndReply(fun reply -> GetMonitor(monitorKey, factory, reply)) :?> BasicTimer
  
positive.code: open System.Collections.Concurrent
  
  /// Tuple representing a key used to identify a monitor
  type MonitorKey = (string * Type)
  /// Type representing a monitor factory
  type MonitorFactory = unit -> IMonitor
  
  
negative.code:             tagDictionary.Clear()
              value |> Seq.iter (fun x -> tagDictionary.TryAdd(x, byte 0) |> ignore)
      /// Gets the monitor key used to identify monitors
      static member GetMonitorKey(name : string, monitorType : Type, tags : Tag array) = (name, monitorType, tags)
  
      /// Get or add a BasicCounter
      static member BasicCounter(name : string) =
          let monitorKey = OkanshiMonitor.GetMonitorKey(name, typeof<BasicCounter>, [||])
          let factory = fun () -> (new BasicCounter(MonitorConfig.Build(name).WithTags(OkanshiMonitor.DefaultTags)) :> IMonitor)
          monitorAgent.PostAndReply(fun reply -> GetMonitor(monitorKey, factory, reply)) :?> BasicCounter
  
  