{NodeType} *output = NULL; if (!list || list->node_count == 0) {{ goto RETURN_{Tupper}_LIST_POP_FRONT; }} output = list->first; if (list->node_count == 1) {{ *list = ({ListType}){{0}}; goto RETURN_{Tupper}_LIST_POP_FRONT; }} --(list->node_count); list->first = output->next; output->prev = output->next = NULL; RETURN_{Tupper}_LIST_POP_FRONT: return output;