6 #define FOREACH(x, l) for(struct list *x = l; x != NULL; x = x->tail)
13 struct list
*list_append(void *el
, struct list
*head
);
14 struct list
*list_cons(void *el
, struct list
*tail
);
15 void list_free(struct list
*head
, void (*freefun
)(void *));
16 void **list_to_array(struct list
*list
, int *num
, bool reverse
);
17 int list_length(struct list
*head
);