ANSI Common Lisp 2 Syntax 2.3 Interpretation of Tokens 2.3.2 Constructing Numbers from Tokens
220.127.116.11 Syntax of a Complex
A complex has a Cartesian structure,
with a real part and an imaginary part each of which is a
The parts of a complex are not necessarily floats
but both parts must be of the same type:
either both are rationals, or both are of the same float subtype.
When constructing a complex, if the specified parts are not the
same type, the parts are converted to be the same type
internally (i.e., the rational part is converted to a float).
An object of type (complex rational) is converted internally
and represented thereafter as a rational if its imaginary part is an
integer whose value is 0.
For further information, see Section 18.104.22.168 Sharpsign C and Section 22.214.171.124.4 Printing Complexes.