anchor.diff:  
   //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
  +
  +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"
   
  
positive.code:         else root
      
      let uri = Uri(basePath)
      uri.MakeRelativeUri(Uri(path)).ToString().Replace("/", "\\").Replace("%20", " ")    
  
  let extractPath infix (fileName : string) : string option=
      let path = fileName.Replace("\\", "/").ToLower()
  
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 =
  