/* * Header file for Lisp-style linked lists. */ typedef void * DATA; typedef void * list_t; #define NIL NULL int nullp (list_t l); list_t cons (DATA car, list_t cdr); DATA car (list_t l); list_t cdr (list_t l); void set_cdr (list_t l, list_t new_cdr); list_t postpend (DATA new_elt, list_t l); list_t reverse (list_t l); void destroy_node (list_t l); void destroy_spine (list_t l); void destroy_list (list_t l); void list_foreach (void (*fn)(DATA), list_t l);