! require substitution_rule