static O callAndMake_extended(S code, O... args) { if (code == null) null; code = trim(code); if (isQuoted(code)) ret unquote(code); if (isInteger(code)) ret parseInt(code); if (isIdentifier(code)) ret eq(code, "x") ? first(args) : callAndMake(code, args); Pair> p = tok_parseFunctionCall(code); if (p == null) fail("Can't parse: " + code); ret callAndMake(p.a, mapToArray(func(S arg) -> O { callAndMake_extended(arg, args) }, p.b)); }