anchor.diff:              | _ -> ctx.Post((fun _ -> g (arg)), null))
       
       type Microsoft.FSharp.Control.Async with
  -        static member EitherEvent(ev1 : IObservable<'a>, ev2 : IObservable<'b>) = 
  +        static member EitherEvent(ev1: IObservable<'a>, ev2: IObservable<'b>) = 
               synchronize (fun f -> 
                   Async.FromContinuations((fun (cont, _econt, _ccont) -> 
                       let rec callback1 = 
  
positive.code: open FSharpVSPowerTools.ProjectSystem
  
  // The tag that carries metadata about F# color-regions.
  type DepthRegionTag(info : int * int * int * int) = 
      interface ITag
      // why are (line,startColumn,endColumn,depth) here, and not just depth?  
      // because we might have range info for indent coloring on a blank line, and there are no chars to tag there, so we put a tag in column 0 and carry all this info as metadata
      member x.Info = info
  
  type DepthTagger(sourceBuffer : ITextBuffer, filename : string) as self = 
      // computed periodically on a background thread
      let mutable results : _ [] = null
      let resultsLock = obj() // lock for reading/writing "results"
      // only updated on the UI thread in the GetTags method
      let mutable prevTags : ITagSpan<DepthRegionTag> [] = null
      let mutable prevSnapshot = null
      let mutable prevResults = null
      // for the event
  
negative.code:                         remover2.Dispose()
                          f cont (Choice2Of2(value)))
                      
                      and remover1: IDisposable = ev1.Subscribe(callback1)
                      and remover2: IDisposable = ev2.Subscribe(callback2)
                      ())))
  
  open System
  