ref: cfd7660a044c8bd3ad0c33a237155b05248c0b0b
dir: /list.h/
// Defines a node in a list typedef struct ListNode ListNode; struct ListNode { void *datum; // Data stored in node ListNode *next; // Next node in the list // Doubly-linked things union { ListNode *prev; // Previous node in the list char empty; // Stub for space savings in single }; }; // Defines a list from the head; typedef struct List List; struct List { ListNode *head; usize size; }; // Return an allocated, empty, list. List* mklist(void); // Prepend to the front of the list. List* listprepend(List*, void*); // Append to the end of the list. List* listappend(List*, void*);