I would add two things to the comment associated with make-keyword-arguments.
The first thing is that the list returned is initially (:key1 nil :key2 nil ...) so that the
first value of each list appears only after the first call to the destructive function.
The second thing is that, when a list of values is exhausted, then subsequent
calls to the destructive function will insert NIL, as opposed to (say) signaling
some error.
I would add two things to the comment associated with make-keyword-arguments.
The first thing is that the list returned is initially (:key1 nil :key2 nil ...) so that the first value of each list appears only after the first call to the destructive function.
The second thing is that, when a list of values is exhausted, then subsequent calls to the destructive function will insert NIL, as opposed to (say) signaling some error.