complex
(complex real &optional imaginary)
Lite: there is no complex number representation, so a zero (or omitted) imaginary part yields the real part and anything else signals an error. This keeps sources whose complex branch is never taken — like parse-number's #C(...) parser — loadable on every backend.
> (complex 1 2)
Error: complex numbers are not supported (imaginary part 2)