+ao_poly
+ao_lisp_cond(struct ao_lisp_cons *cons)
+{
+ int argc;
+ struct ao_lisp_cons *arg;
+
+ argc = 0;
+ for (arg = cons, argc = 0; arg; arg = ao_lisp_poly_cons(arg->cdr), argc++) {
+ if (ao_lisp_poly_type(arg->car) != AO_LISP_CONS)
+ return ao_lisp_error(AO_LISP_INVALID, "%s: invalid type for arg %d",
+ ao_lisp_poly_atom(_ao_lisp_atom_cond)->name, argc);
+ }
+ ao_lisp_set_cond(cons);
+ return AO_LISP_NIL;
+}
+