defn docstrings, assert throws AssertionError, Seqable covers collections

Conformance gaps surfaced re-running the library suites:

- defn now keeps a leading docstring as :doc metadata — it was dropped, so
  (:doc (meta #'f)) was always nil. Rides the def docstring slot.
- assert (and :pre/:post) throw a real AssertionError instead of an ex-info, so
  (catch AssertionError …) / (thrown? AssertionError …) match, with Clojure's
  "Assert failed: <msg>\n<form>" message.
- instance? clojure.lang.Seqable was conflated with ISeq, so a vector/map read
  as not-Seqable. Split them: Seqable covers every persistent collection, ISeq
  only seqs.
This commit is contained in:
Yogthos 2026-06-25 17:23:24 -04:00
parent 60e129a95c
commit 14ce46fb2a
6 changed files with 926 additions and 909 deletions

File diff suppressed because one or more lines are too long