anchor.diff:  
       let private textChangedHandler (event : TextDocumentChangeEvent) =
           if isNotNull window.activeTextEditor && event.document.fileName = window.activeTextEditor.document.fileName  then
  -            // printf "CodeLens - File changed."
  +            // printf "[%d:%d:%d:%d] CodeLens - File changed." DateTime.Now.Hour DateTime.Now.Minute DateTime.Now.Second  DateTime.Now.Millisecond
               changes <- [yield! changes; yield! event.contentChanges]
  +            refresh.fire(-1)
           ()
   
       let private fileOpenedHandler (event : TextEditor) =
  
positive.code:         ()
  
      let activate selector (disposables: Disposable[]) =
          refresh.event.Invoke(fun (n) -> version <- n; flag <- true; null) |> ignore
          workspace.onDidChangeTextDocument $ (textChangedHandler,(), disposables) |> ignore
          window.onDidChangeActiveTextEditor $ (fileOpenedHandler, (), disposables) |> ignore
  
  
negative.code:                         else
                              let chngs = changes |>  List.choose (fun n -> let r = heightChange n in if r = 0 then None else Some (n.range.start.line, r) )
                              let fromCache = defaultArg (cache |> Map.tryFind doc.fileName) [||]
                              // printf "CodeLens - FileName: %s, Version: %d" doc.fileName version
                              let res =
                                  fromCache
                                  |> Array.map (fun n ->
  