before_help = "Full documentation can be found online at: https://conjure-cp.github.io/conjure-oxide",
#[arg(long, default_value_t = Rewriter::default(), value_parser = parse_rewriter, global = true, help_heading = CONFIGURATION_HELP_HEADING)]
/// representation-domain size elsewhere, and minimises resulting AST depth for equally-applicable
/// rewrite rules. Use -v to inspect representation costs. Interactive prompts on stderr, or uses
/// `uniform` uses one representation kind per type family throughout the model. Enable `yes` for
/// `1 in (x :: set (representation packed) of int) /\ 2 in (x :: set (representation occurrence) of int)`.
/// Pin the SAT table composition: tuple, mdd or binary-support (constant two-column relations).
#[arg(long = "sat-encoding-alldifferent", global = true, help_heading = MODELLING_HELP_HEADING)]
/// Pin the SAT weighted encoder: rustsat-generalized-totalizer, rustsat-binary-adder, pindakaas-bdd, rustsat-dynamic-poly-watchdog, or pindakaas-swc.
#[arg(long,global=true, value_names=["filename"], next_line_help=true, help_heading=LOGGING_HELP_HEADING)]
#[arg(long, value_enum, requires = "log_file", global = true, help_heading = LOGGING_HELP_HEADING)]
#[arg(long, value_enum, requires = "log_file", global = true, help_heading = LOGGING_HELP_HEADING)]