List* List_New(List_ElementDisposer elementDisposer) { List* list; list = Allocate(List); List_Initialize(list, elementDisposer); return list; }
List* List_Prepend(List* list, void* value) { if (list->count == 0) { return List_Initialize(list, value); } else { Node* prepended_node = Node_Prepend(list->first, value); list->first = prepended_node; list->count++; return list; } }
void HashTableSlot_Initialize(HashTableSlot *self) { List_Initialize(&self->mBase); }