anchor.diff:              |> Seq.map (createTagSpan)
               |> Seq.cast<ITagSpan<_>>
   
  -    let mutable cts = new CancellationTokenSource()
  -
       let doUpdate () =
           let uiContext = SynchronizationContext.Current
           let worker =
  
positive.code:                  | None -> ()
              })
  
          cts.Dispose()
          cts <- new CancellationTokenSource()
          Async.StartInThreadPoolSafe(worker, cts.Token)
  
      let docEventListener =
          new DocumentEventListener(
  
negative.code: [<Literal>]
  let MaxTooltipLines = 30
  
  let visitLetBinding (Binding(_, _, _, _, _, _, _, _, _, _, range, _)) =
      range
  
  let rec visitSynMemberDefn d =
      seq {
          match d with
          | SynMemberDefn.Member _ -> yield d.Range
          | SynMemberDefn.LetBindings(lets, _, _, _) ->
              yield! Seq.map visitLetBinding lets
          | SynMemberDefn.AbstractSlot _ -> yield d.Range
          | SynMemberDefn.Interface(_, mmembers, _) ->
              yield d.Range
              match mmembers with
              | Some members -> yield! Seq.collect visitSynMemberDefn members
              | None -> ()
          | SynMemberDefn.NestedType(nt, _, _) ->
              yield! visitTypeDecl nt
          | _ -> ()
      }
  
  and visitTypeDecl (TypeDefn(_, _, members, range)) =
      seq {
          yield range
          yield! Seq.collect visitSynMemberDefn members
      }
  
  let rec visitDeclaration (decl: SynModuleDecl) = 
      seq {
          match decl with
          | SynModuleDecl.Let(_, bindings, _) ->
              yield decl.Range
              yield! Seq.map visitLetBinding bindings
          | SynModuleDecl.Types(types, _) ->
              yield! Seq.collect visitTypeDecl types
          | SynModuleDecl.NestedModule(_, decls, _, _) ->
              yield decl.Range
              yield! Seq.collect visitDeclaration decls
  