+ * around in memory (e.g. as a consequence of realloc()).
+ *
+ * This always works if 'list' is a member of a list, or if 'list' is the head
+ * of a non-empty list. It fails badly, however, if 'list' is the head of an
+ * empty list; just use list_init() in that case. */