subtypep
(subtypep type1 type2)
Whether type1 names a subtype of type2, answering over the built-in type lattice (e.g. integer ⊂ rational ⊂ real ⊂ number, string ⊂ vector ⊂ array/sequence) plus the class registry's ancestor sets (defclass/define-condition hierarchies). Lite: a single primary value — an unknown pair answers nil. The float and character type names collapse to the one runtime representation, so (subtypep 'short-float 'single-float) is t.
Either argument may be a class metaobject instead of a type name: what find-class and class-of answer designates its own class, so a metaobject compares exactly like the name spelling. Both arguments may also be computed at run time. On the JVM and WASM compilers a literal (quoted) pair is folded into a constant at compile time; anything else is answered at run time over the same lattice.