anchor.diff:          | _ -> fail "[ProjectFactory] Cannot subscribe for ProjectItemsEvents"
   
       member x.CreateForProject (project: Project): IProjectProvider = 
  -        cache.Get project.UniqueName (fun _ -> 
  -            let provider = new ProjectProvider (project, x.CreateForProject)
  -            provider.ReferencesChanged.Add(fun p -> onProjectChanged p)
  -            provider) :> _
  +        cache.Get project.UniqueName (fun _ ->
  +            new ProjectProvider (project, x.CreateForProject, onProjectChanged)) :> _
   
       member x.CreateForFileInProject (buffer: ITextBuffer) (filePath: string) project: IProjectProvider option =
           if not (project === null) && not (filePath === null) && isFSharpProject project then
  
positive.code:         member x.Dispose() =
              project.VSProject
              |> Option.iter (fun p ->
                      p.Events.ReferencesEvents.remove_ReferenceAdded refAdded
                      p.Events.ReferencesEvents.remove_ReferenceChanged refChanged
                      p.Events.ReferencesEvents.remove_ReferenceRemoved refRemoved)
                              
  type internal VirtualProjectProvider (buffer: ITextBuffer, filePath: string) = 
      do Debug.Assert (filePath <> null && buffer <> null, "FilePath and Buffer should not be null.")
  
negative.code:                 return opts
          }
  
      interface IProjectProvider with
          member x.IsForStandaloneScript = false
          member x.ProjectFileName = projectFileName.Value
  