;;; -*- scheme -*-
;;; Anonymized customer model — previously hung dzn for >60 s
;;; (commit 162342a3 unblocked it — see memory/project_anon_hang
;;; and docs/step_frontier_anon_hang_slowdown.md). Kept in the test
;;; corpus as a hang-regression guard.
;;;
;;; Source presentation:
;;;
;;; The original anonymised source used `_NNN` placeholders for
;;; every identifier. `rename.py` rewrites those into financial /
;;; bookkeeping vocabulary so the file is discussable without
;;; scanning numeric placeholders. Role-aware: interfaces get
;;; `PascalCase` names (Receipt, Journal, Ledger, …) — disambiguated
;;; with an `I` prefix where they collide with extern type aliases
;;; (ICapital / IPosting / IAsset / IEquity), ports get camelCase
;;; (account, journal, posting, …), events get verbs (post, submit,
;;; validate, …), enum types are PascalCase nouns (Phase, Status, …),
;;; values are PascalCase (Drafted, Pending, Settled, …).
;;;
;;; Top-level component is `anon_hang` — in-file decl harmonised
;;; with the dir name when the META `(test-component …)` override
;;; mechanism was retired in 2026-05. The component still sits
;;; inside `namespace bookkeeping.core.ledger_module { … }`; nucleos
;;; resolves the unqualified `-m anon_hang` against the unique
;;; declaration within the namespace.
;;;
;;; `anon_hang_flat.dzn` is the imports-resolved sibling for
;;; reference — not a separate test target.
;;;
;;; Baselines:
;;;
;;; dzn rejects the renamed file: rename collisions between extern
;;; type aliases, interface declarations, and variable bindings
;;; that dzn flags as same-name conflicts but nucleos handles
;;; silently. `baseline/lts.override.aut` and `baseline/verify.override`
;;; therefore come from `nucleos` itself — sanctioned overrides
;;; under [[feedback_overrides_strict]] for this model. The test
;;; purpose is "engine completes without hanging", not
;;; "ours matches dzn"; threads-consistency is the additional
;;; correctness gate (lts at threads=1 vs threads=10 must agree).
