anchor.diff:          if JS.isDefined event then
               parseFile event
               |> Promise.bind (fun n ->
  -                LanguageService.projectsInBackground event.fileName
  +                match n with
  +                | Some _fileName -> LanguageService.projectsInBackground event.fileName
  +                | None -> Promise.lift ()
               )
           else
               Promise.lift ()
  
positive.code:                 UnusedDeclarations.refresh.fire fileName
                  SimplifyName.refresh.fire fileName
                  CodeOutline.refresh.fire (undefined)
                  (Uri.file fileName, (mapResult result |> snd |> Seq.map fst |> ResizeArray)) |> currentDiagnostic.set  )
  
      let private parseFile (file : TextDocument) =
          match file with
  
negative.code:             let path = file.fileName
              match Project.find path with
              | Choice1Of3 _ -> parse file
              | Choice2Of3 () -> Promise.lift None
              | Choice3Of3 (Some p) ->
                  p
                  |> Project.load
                  |> Promise.bind (fun _ -> parse file)
              | Choice3Of3 None -> parse file
          | _ -> Promise.lift None
  
      let mutable private timer = None
  
  