anchor.diff:                  "Dump results in raw format instead of pretty-printing.")>]
         raw : bool
         [<Option(
  -            'A',
  +            'B',
               HelpText =
  -                "(EXPERIMENTAL) Under-approximate symbols in Z3 proofs.")>]
  -      approx : bool
  -      [<Option(
  -            'R',
  -            HelpText =
  -                "(TEMPORARY) Use reals instead of ints in Z3 proofs.")>]
  -      reals : bool
  +                "Comma-delimited set of backend options (pass 'list' for details)")>]
  +      backendOpts : string option
         [<Option(
               's',
               HelpText =
  
positive.code:           >> mapMessages ModelFilterError)
  
  /// <summary>
  ///     Runs a Starling request.
  /// </summary>
  /// <param name="optS">
  ///     The string governing optimiser overrides.
  /// </param>
  /// <param name="reals">
  ///     (TEMPORARY) Whether to use reals instead of ints in MuZ proofs.
  /// </param>
  /// <param name="approx">
  ///     (EXPERIMENTAL) Whether to try to approximate Boolean symbols.
  /// </param>
  /// <param name="verbose">
  ///     If true, dump some internal information to stderr.
  
negative.code: /// Runs Starling with the given options, and outputs the results.
  let mainWithOptions opts =
      let optS = opts.optimisers
      let backendS = opts.backendOpts
      let verbose = opts.verbose
      let times = opts.times
  
      let starlingR =
          match (requestFromStage opts.stage) with
          | Some otype -> runStarling times optS backendS verbose otype opts.input
          | None -> fail Error.BadStage
  
      let mview =
  