anchor.diff:  open System.Collections.Concurrent
   
   /// Tuple representing a key used to identify a monitor
  -type MonitorKey = (string * Type)
  +type MonitorKey = (string * Type * Tag array)
   /// Type representing a monitor factory
   type MonitorFactory = unit -> IMonitor
   
  
positive.code: 
      /// Get or add a StepCounter
      static member StepCounter(name : string, step) =
          let monitorKey = OkanshiMonitor.GetMonitorKey(name, typeof<StepCounter>)
          let factory = fun () -> (new StepCounter(MonitorConfig.Build(name).WithTags(OkanshiMonitor.DefaultTags), step) :> IMonitor)
          monitorAgent.PostAndReply(fun reply -> GetMonitor(monitorKey, factory, reply)) :?> StepCounter
  
  
negative.code: 
      /// Get or add a BasicTimer
      static member BasicTimer(name : string, step) =
          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
  