#275 vectorp returns NIL for strings (strings are vectors in CL)
open(vectorp "abc") => NIL, should be T (a string is a vector of characters). funcl vectorp is the simple-vector primitive (distinct widetag from strings). Fixing needs a split: user-facing vectorp = (or simple-vector-p stringp byte-vector-p), simple-vector-p = the primitive (excludes strings), and an AUDIT of internal (vectorp x) uses that then svref/vector-set — notably coerce (src/stdlib.lisp ~6150: (if (vectorp obj) obj (%list->vector ...)) would wrongly return a string unchanged for (coerce str (quote vector))) and replace/length. arrayp was fixed (21d69b0-follow) to accept strings/byte-vectors since it is a pure predicate (no element-access dispatch); vectorp is riskier and deferred.
STILL BROKEN (probe 2026-07-11): (vectorp "abc") => NIL. Assessment: NOT a one-liner — many internal call sites use vectorp as a simple-vector discriminator (printer dispatch, mc-instance checks, image walker), so making vectorp ANSI-true for strings requires sweeping those sites onto an explicit simple-vector-p first, then widening vectorp (widetags 0x09+0x0D+0x01?). Medium-size, mechanical; bundle with a typep 'vector / 'array audit.