anchor.diff:      project ""<filename>""
         - associates the current session with the specified project"
   
  +  let outputText = @"
  +    Output format
  +    =============
  +
  +    Messages are in one of the following three forms:
  +
  +    1. INFO: text
  +
  +       A single line with a free text field. Returns information.
  +
  +    2. ERROR: text
  +
  +       A single line with a free text field. An error has occurred.
  +  
  +    3. DATA: word number
  +       text
  +
  +       Some data, where 'word' (in [a-z]+) indicates the type of data
  +       and 'number' (in [0-9]+) indicates the number of bytes of free
  +       text that will follow."
  +
     // Command that can be entered on the command-line
     type Command =
       | Completion of string * Position * int option
  
positive.code:   let agent = new IntelliSenseAgent()
  
    let rec main (state:State) : int =
      Debug.print "main state is:\nproject: %b\nfiles: %A"
                  (Option.isSome state.Project)
                  (Map.fold (fun ks k _ -> k::ks) [] state.Files)
      match parseCommand(Console.ReadLine()) with
      | GetErrors ->
          let errs = agent.GetErrors()
          for e in errs do
            printfn "[%d:%d-%d:%d] %s %s" e.StartLine e.StartColumn e.EndLine e.EndColumn
                      (if e.Severity = Severity.Error then "ERROR" else "WARNING") e.Message
          Console.WriteLine("<<EOF>>")
          main state
  
      | Parse(file,full) ->
  
negative.code:                                     file,
                                      text)
            agent.TriggerParseRequest(opts, full)
            Console.WriteLine("INFO: Background parsing started")
            main { state with Files = Map.add file lines state.Files }
          else
            printfn "ERROR: File '%s' does not exist" file
            main state
  
      | Project file ->
          // Load project file and store in state
          if File.Exists file then
            match ProjectParser.load file with
            | Some p -> Console.WriteLine("INFO: Project loaded")
                        main { state with Project = Some p }
            | None   -> printfn "ERROR: Project file '%s' is invalid" file
                        main state
          else
            printfn "ERROR: File '%s' does not exist" file
            main state
  
      // TODO: Refactor error checking of next four cases
      | Declarations file ->
          let file = Path.GetFullPath file
          if parsed file then
            let lines = state.Files.[file]
            let text = String.concat "\n" lines
            let opts = RequestOptions(agent.GetCheckerOptions(file, text, state.Project),
  