anchor.diff:          else root
       
       let uri = Uri(basePath)
  -    uri.MakeRelativeUri(Uri(path)).ToString().Replace("/", "\\").Replace("%20", " ")    
  +    uri.MakeRelativeUri(Uri(path)).ToString().Replace("/", "\\").Replace("%20", " ")  
   
   let extractPath infix (fileName : string) : string option=
       let path = fileName.Replace("\\", "/").ToLower()
  
positive.code: 
  //More generic variant of http://www.fssnip.net/c4
  open System.Collections.Concurrent
  let cache = ConcurrentDictionary<(string * obj) option,Lazy<obj>>()
  let memoizeConcurrent (caller:string) (f: ('a -> 'b)) =
      fun (x :'a) -> 
          (cache.GetOrAdd(Some (caller, x|>box), lazy ((f x)|>box)).Force() |> unbox) : 'b
  
  #nowarn "40"
  
  
negative.code:         /// Creates an observable that calls the specified function after someone
          /// subscribes to it (useful for waiting using 'let!' when we need to start
          /// operation after 'let!' attaches handler)
          let guard f (e:IObservable<'Args>) =
            { new IObservable<'Args> with
                member x.Subscribe(observer) =
                  let rm = e.Subscribe(observer) in f(); rm } 
  
          let sample milliseconds source =
  