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
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.