public static ArgumentsRule Forward( this ArgumentsRule rule) => rule.MaterializeAs(o => new ForwardedArgument(o.Arguments.SingleOrDefault()));
public static ArgumentsRule ForwardAsSingle( this ArgumentsRule rule, Func <AppliedOption, string> format) => rule.MaterializeAs(o => new ForwardedArgument(format(o)));
public static ArgumentsRule ForwardAsMany( this ArgumentsRule rule, Func <AppliedOption, IEnumerable <string> > format) => rule.MaterializeAs(o => new ForwardedArgument(format(o).ToArray()));
public static ArgumentsRule ForwardAs( this ArgumentsRule rule, string value) => rule.MaterializeAs(o => new ForwardedArgument(value));