+static void (*const ao_lisp_print_funcs[AO_LISP_NUM_TYPE])(ao_poly) = {
+ [AO_LISP_CONS] = ao_lisp_cons_print,
+ [AO_LISP_STRING] = ao_lisp_string_print,
+ [AO_LISP_INT] = ao_lisp_int_print,
+ [AO_LISP_ATOM] = ao_lisp_atom_print,
+ [AO_LISP_BUILTIN] = ao_lisp_builtin_print
+};
+
+ao_poly
+ao_lisp_poly_print(ao_poly p)