assert(gc);
assert(scope);
- if (!list_p(args)) {
- return wrong_argument_type(gc, "listp", args);
- }
-
- if (length_of_list(args) != 1) {
- return wrong_number_of_arguments(gc, length_of_list(args));
- }
+ Level * const level = (Level*)param;
+ const char *goal_id = NULL;
- if (!string_p(CAR(args))) {
- return wrong_argument_type(gc, "stringp", args);
+ struct EvalResult result = unpack_args(gc, "s", args, &goal_id);
+ if (result.is_error) {
+ return result;
}
- const char * const goal_id = CAR(args).atom->str;
- Level * const level = (Level*)param;
-
level_show_goal(level, goal_id);
return eval_success(NIL(gc));