#define UTIL_H
#include <stdarg.h>
+#include <stdbool.h>
+
+struct list {
+ void *el;
+ struct list *tail;
+};
+struct list *list_cons(void *el, struct list *tail);
+void list_free(struct list *head, void (*freefun)(void *));
+void **list_to_array(struct list *list, int *num, bool reverse);
+int list_length(struct list *head);
void die(const char *msg, ...);
void pdie(const char *msg);