anchor.diff:  ﻿namespace FSharpVSPowerTools.QuickInfo
   
   open System
  +open System.Text
   open Microsoft.VisualStudio.Text.Editor
   open Microsoft.VisualStudio.Text
   open Microsoft.VisualStudio.Shell.Interop
  
positive.code: open FSharpVSPowerTools.ProjectSystem
  open FSharpVSPowerTools.AsyncMaybe
  open FSharp.ViewModule
  
  type QuickInfoVisual = FsXaml.XAML<"QuickInfoMargin.xaml", ExposeNamedProperties=true>
  
  
negative.code:     do visual.Root.DataContext <- model
      let buffer = view.TextBuffer
  
      let updateError (errors: (FSharpErrorSeverity * string list) []) = lock updateLock <| fun () -> 
          model.QuickInfo <-
              errors 
              |> Array.map (fun (severity, errors) -> 
                  let title = 
                      match errors with
                      | [_] -> sprintf "%+A" severity
                      | _ -> sprintf "%+As (%d)" severity errors.Length
                  title + ": " + 
                  (match errors with 
                   | [e] -> e
                   | _ -> errors |> List.mapi (fun i e -> sprintf "%d. %s" (i + 1) e) |> List.toArray |> String.concat ", "))
              |> String.concat ", "
  
      let flattenLines (x: string) =
          match x with
          | null -> ""
          | x -> x.Replace("\r\n", ", ").Replace("\r", ", ").Replace("\n", ", ") 
  
      let updateAtCaretPosition () =
          let caretPos = view.Caret.Position
  