anchor.diff:                                  | Some location ->
                                       if location.Line = context.line && location.Column > lineToCaret.LastIndexOf("->") then
                                           LoggingService.logDebug "Completion: got parse results from cache"
  -                                        return document.TryGetAst()
                                       else
  +                                        LoggingService.logDebug "Completion: syncing parse results"
                                           // force sync
                                           documentContext.ReparseDocument()
                                           document.GetAst()
   
  -                                        return document.TryGetAst()
  +                                    return document.TryGetAst()
                                   | None -> return None
                               | _ -> return None
                           })
  
positive.code:                             LoggingService.logDebug "Completion: residue %s" residue
                              result.DefaultCompletionString <- residue
                              result.TriggerWordLength <- residue.Length
  
                          //TODO Use previous token and pattern match to detect whitespace
                          if Regex.IsMatch(lineToCaret, "(^|\s+|\()\w+$", RegexOptions.Compiled) then
                              // Add the code templates and compiler generated identifiers if the completion char is not '.'
  
negative.code:         [for keyValuePair in KeywordList.modifiers do
              yield CompletionData(keyValuePair.Key, IconId("md-keyword"),keyValuePair.Value) ]
  
      let parseLock = obj()
      let getFsiCompletions context = 
  
  