  wapp_debug_assert(list != NULL && node != NULL && (node->item) != NULL, "`list`, `node` and `node->item` should not be NULL");

  {ListType} node_list = {Tlower}_node_to_list(node);

  if (list->node_count == 0) {{
    *list = node_list;
    return;
  }}

  list->node_count += node_list.node_count;

  {NodeType} *first = list->first;
  if (first) {{
    first->prev = node_list.last;
  }}

  list->first          = node_list.first;
  node_list.last->next = first;
