concatenate returns a sequence that contains
all the individual elements of all the sequences in the order
that they are supplied.
The sequence is of type result-type,
which must be a subtype of type sequence.
All of the sequences are copied from; the result
does not share any structure with any of the sequences.
Therefore, if only one sequence is provided
and it is of type result-type,
concatenate is required to copy sequence rather than simply
returning it.
It is an error if any element of the sequences cannot be an
element of the sequence result.
If the result-type is a subtype of list,
the result will be a list.
If the result-type is a subtype of vector,
then if the implementation can determine the element type specified
for the result-type, the element type of the resulting array
is the result of upgrading that element type; or, if the
implementation can determine that the element type is unspecified (or *),
the element type of the resulting array is t;
otherwise, an error is signaled.