anchor.diff:                  String.Equals(ext, ".fsscript", StringComparison.OrdinalIgnoreCase) ||
                   String.Equals(ext, ".fs", StringComparison.OrdinalIgnoreCase) then
                   Some (VirtualProjectProvider(buffer, filePath) :> _)
  -            else 
  +            else
                   None
           else 
               None
  
positive.code:                     | Remove key -> 
                          match cache |> Map.tryFind key with
                          | Some value -> 
                              match box value with
                              | :? IDisposable as d -> d.Dispose()
                              | _ -> ()
                              cache |> Map.remove key
                          | _ -> cache) 
              }
          loop Map.empty)
      do agent.Error.Add (fail "%O")
      member x.Get key creator = agent.PostAndReply (fun r -> Get (key, creator, r))
      member x.Remove key = agent.Post (Remove key)
  
  [<AutoOpen>]
  module FSharpSymbolExtensions =
  
negative.code: 
      do match events with
          | Some events ->
              events.SolutionEvents.add_AfterClosing (fun _ -> cache.Clear())
              events.ProjectItemsEvents.add_ItemRenamed (fun p _ -> onProjectItemChanged p)
              events.ProjectItemsEvents.add_ItemRemoved (fun p -> onProjectItemChanged p)
              events.ProjectItemsEvents.add_ItemAdded (fun p -> onProjectItemChanged p)
  