anchor.diff:          let text = String.concat "\n" lines
           let file = Path.GetFullPath file
           if File.Exists file then
  -          let opts = RequestOptions(agent.GetCheckerOptions(file, text, state.Project),
  -                                    file,
  -                                    text,
  -                                    state.HelpText)
  -          agent.TriggerParseRequest(opts, full)
  +          agent.TriggerParseRequest(getoptions file, full)
             Console.WriteLine("INFO: Background parsing started\n<<EOF>>")
             main { state with Files = Map.add file lines state.Files }
           else
  
positive.code:     | PosCommand(cmd, file, ((line, col) as pos), timeout) ->
          let file = Path.GetFullPath file
          if parsed file && posok file line col then
            let text = String.concat "\n" state.Files.[file]
            let opts = RequestOptions(agent.GetCheckerOptions(file, text, state.Project),
                                      file,
                                      text,
                                      state.HelpText)
  
            match cmd with
            | Completion -> agent.DoCompletion(opts, pos, state.Files.[file].[line], timeout)
            | ToolTip -> agent.GetToolTip(opts, pos, state.Files.[file].[line], timeout)
            | FindDeclaration -> agent.FindDeclaration(opts, pos, state.Files.[file].[line], timeout)
          main state
  
  
negative.code:       if not ok then Console.WriteLine("ERROR: Position is out of range\n<<EOF>>")
        ok
  
      let getoptions file =
        let text = String.concat "\n" state.Files.[file]
        RequestOptions(agent.GetCheckerOptions(file, text, state.Project),
                       file,
                       text)
  
  
      // Debug.print "main state is:\nproject: %b\nfiles: %A\nmode: %A"
      //             (Option.isSome state.Project)
      //             (Map.fold (fun ks k _ -> k::ks) [] state.Files)
  