link_t* list_delete(link_t* head, unsigned index);
link_t* list_concat(link_t* first, link_t* second);
link_t* list_sort(link_t* head);
+link_t* list_merge_sort(link_t* head);
unsigned list_count(link_t* head);
void list_set(link_t* head, unsigned index, int value);
int list_get(link_t* head, unsigned index);