anchor.diff:  
   open Microsoft.FSharp.Compiler.SourceCodeServices
   open Microsoft.FSharp.Compiler.Interactive.Shell
  +open System
  +open System.IO
  +open System.Text.RegularExpressions
   
   type CompletionData = {
       displayText: string
  
positive.code:         ]
           
      let mutable symbolList = List.empty
      let getCompletions (fsiSession: FsiEvaluationSession, input:string, column: int) =
          async {
              let parseResults, checkResults, _checkProjectResults = fsiSession.ParseAndCheckInteraction(input)
              let longName,residue = Parsing.findLongIdentsAndResidue(column, input)
              let! symbols = checkResults.GetDeclarationListSymbols(Some parseResults, 1, column, input, longName, residue, fun (_,_) -> false)
              let results = symbols 
                            |> List.choose symbolToCompletionData
  
              let completions, symbols = results |> List.unzip
  
negative.code:     description: string
  }
  
  type PathCompletion = {
      paths: string seq
      residue: string
  }
  
  module Completion =
      let (|FilePath|_|) line =
          let matches = Regex.Matches(line, "^\s*#(load|r)\s+\"([^\"]*)", RegexOptions.Compiled)
          if matches.Count > 0 then
              Some (matches.[0].Groups.[1].Value, matches.[0].Groups.[2].Value)
          else
              None
  
      let rec allBaseTypes (entity:FSharpEntity) =
          seq {
              match entity.TryFullName with
  