:(scenario trace)
recipe main [
trace 1, [foo], [this is a trace in mu]
]
+foo: this is a trace in mu
:(before "End Primitive Recipe Declarations")
TRACE,
:(before "End Primitive Recipe Numbers")
put(Recipe_ordinal, "trace", TRACE);
:(before "End Primitive Recipe Checks")
case TRACE: {
if (SIZE(inst.ingredients) < 3) {
raise_error << maybe(get(Recipe, r).name) << "'trace' takes three or more ingredients rather than '" << inst.to_string() << "'\n" << end();
break;
}
if (!is_mu_number(inst.ingredients.at(0))) {
raise_error << maybe(get(Recipe, r).name) << "first ingredient of 'trace' should be a number (depth), but got " << inst.ingredients.at(0).original_string << '\n' << end();
break;
}
if (!is_literal_string(inst.ingredients