refObject makingJoker(refChar string, int hook, ...) { refJoker newJoker = malloc(jokerSize); if (newJoker == nil) { fail("Cannot make '%s' in makingJoker!", string); } else { vaList hooks; degree(newJoker) = jokerDegree; size(newJoker) = jokerSize; state(newJoker) = 0x7F; tag(newJoker) = jokerTag; self(newJoker) = setEmpty(); string(newJoker) = string; vaStart(hooks, hook); while (hook != 0) { self(newJoker) = setAdjoin(self(newJoker), hook); hook = vaArg(hooks, int); } vaEnd(hooks); return toRefObject(newJoker); }}
void bindError(refChar string, int err) { setKey(layers, internQuotedName(string), makeIntegerType(err), makeInteger(err)); userErrs = setAdjoin(userErrs, err); }