#283 mini-clos: pathname argument dispatches to (cons) method, not (pathname) method — derails asdf source-registry parse
closedfuncl pathnames are marker-tagged conses (:%PATHNAME% . ...). In mc generic dispatch, a defmethod set containing both ((x pathname)) and ((x cons)) sends a pathname argument to the CONS method: both specializers are 'applicable' and cons wins the specificity tie. PATHNAME must be MORE specific than CONS for pathname objects (they are disjoint types in ANSI; typep pathname 'cons should ideally be NIL too, cf. cave#235's pathnamep guard).
Repro (no asdf): (defgeneric pd (x)) (defmethod pd ((x pathname)) :pd-pathname) (defmethod pd ((x cons)) :pd-cons) (pd (parse-namestring "/tmp/")) ;; => :PD-CONS, want :PD-PATHNAME
Impact: asdf's (defmethod process-source-registry ((pathname pathname))) never runs; the conf.d directory pathname falls into the (form cons) method, validate-source-registry-form rejects it, raises invalid-source-registry -> (pre fix) fatal report double-fault. Blocks source-registry-based system discovery (central-registry path unaffected). Found while validating ADR-0028.
FIXED (5f63ac0): mini-clos dispatch now treats a PATHNAME arg as disjoint from CONS/LIST (mc-arg-applicable-p returns NIL for cons/list specs when pathnamep). Probe: (pd (parse-namestring "/tmp/")) => :PATH not :CONS. Unblocked asdf's process-source-registry ((pathname pathname)) vs ((form cons)) dispatch — was the first blocker on the ocicl-runtime path.