the new-value argument has to be a string. If they meant "string or nil" then they would not have separately defined "documentation" and "new-value" in the "Arguments and Values"
(setf documentation) new-value x doc-type => new-value.
Arguments and Values:
x---an object.
doc-type---a symbol.
documentation---a string, or nil.
new-value---a string.
the new-value argument has to be a string. If they meant "string or nil" then they would not have separately defined "documentation" and "new-value" in the "Arguments and Values"
(setf documentation) new-value x doc-type => new-value.
Arguments and Values:
x---an object.
doc-type---a symbol.
documentation---a string, or nil.
new-value---a string.