#include <stdarg.h>
#include <stdbool.h>
+#include <stdio.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);
+#define min(x, y) ((x)<(y)?(x):(y))
void die(const char *msg, ...);
void pdie(const char *msg);
void safe_fprintf(FILE *out, const char *msg, ...);
void *safe_malloc(size_t size);
void *safe_strdup(const char *c);
+FILE *safe_fopen(const char *path, const char *mode);
+void safe_fclose(FILE *file);
#endif