From 5b3e36489cdc90ee30eae355c8ab1e04405d525b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 17 Sep 2026 18:16:40 +0000 Subject: [PATCH] :books: Document int?/integer? predicate coverage in Clojure memory Review assumed int? was 32-bit; it covers Long/Integer/Short/Byte. Note it in mem:clojure/idioms so the mistake is not repeated. AI-assisted-by: muse-spark-1.3-contributor --- .serena/memories/clojure/idioms.md | 10 ++++++++++ .serena/memories/critical-info.md | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 .serena/memories/clojure/idioms.md diff --git a/.serena/memories/clojure/idioms.md b/.serena/memories/clojure/idioms.md new file mode 100644 index 0000000000..c8672aa647 --- /dev/null +++ b/.serena/memories/clojure/idioms.md @@ -0,0 +1,10 @@ +# Clojure Idioms (verified) + +Behaviors confirmed against the language/stdlib — do not re-derive from +assumption; a wrong assumption here already cost a review round. + +- `int?` is NOT 32-bit-only: true for `Long`, `Integer`, `Short`, + `Byte` (fixed-precision integers). Clojure integer literals are + `Long`, so `(int? 5000)` is true. +- `integer?` is the general integer predicate; prefer it when any + integer kind must match, `int?` only when fixed precision is meant. diff --git a/.serena/memories/critical-info.md b/.serena/memories/critical-info.md index d36edd4cfa..892e5687f2 100644 --- a/.serena/memories/critical-info.md +++ b/.serena/memories/critical-info.md @@ -7,6 +7,9 @@ You are working on the GitHub project `penpot/penpot`, a monorepo. before focused memories. - Edits/stale refs/duplication cleanup: `mem:memory-maintenance`. - Cross-cutting testing principles, TDD workflow, and anti-patterns: `mem:testing`. +- Verified Clojure language behaviors that contradict common assumptions + (e.g. `int?` covers `Long`; `integer?` is the general predicate): + `mem:clojure/idioms` — read before assuming stdlib predicate semantics. # Development workflow