anchor.diff:      do projectItemsEvents.add_ItemRemoved(fun p -> invalidateProject p)
       do projectItemsEvents.add_ItemRenamed(fun p _ -> invalidateProject p)
       
  -    do events.SolutionEvents.add_AfterClosing (fun _ -> 
  -        debug "[Language Service] Solution closed. Remove Checker."
  -        instance.Swap (fun _ -> None) |> ignore)
  +    do events.SolutionEvents.add_Opened (fun _ -> 
  +        debug "[Language Service] Solution opened. Create Checker."
  +        instance <- LanguageService (fun _ -> ()))
   
       let buildQueryLexState (textBuffer: ITextBuffer) source defines line =
           try
  
positive.code:         |> Option.map (fun symbol -> point.FromRange symbol.Range, symbol)
  
      member x.ProcessNavigableItemsInProject(openDocuments, projectProvider: IProjectProvider, processNavigableItems, ct) =
          getInstance().ProcessParseTrees(
              projectProvider.ProjectFileName, 
              openDocuments, 
              projectProvider.SourceFiles, 
  
negative.code:      editorFactory: IVsEditorAdaptersFactoryService,
       fsharpLanguageService: FSharpLanguageService) =
  
      let mutable instance = LanguageService (fun _ -> ())
      
      let invalidateProject (projectItem: EnvDTE.ProjectItem) =
          let project = projectItem.ContainingProject
          if box project <> null && isFSharpProject project then
              let p = ProjectProvider.createForProject project
              debug "[Language Service] InteractiveChecker.InvalidateConfiguration for %s" p.ProjectFileName
              let opts = instance.GetCheckerOptions (null, p.ProjectFileName, null, p.SourceFiles, 
                                                     p.CompilerOptions, p.TargetFramework)
              instance.InvalidateConfiguration(opts)
  
      let dte = serviceProvider.GetService<EnvDTE.DTE, Interop.SDTE>()
      let events = dte.Events :?> EnvDTE80.Events2
  