-- Builtin aliases like `head`, `length`, `tail`, `filter`, `concat` resolve
-- to canonical builtins (`hd`, `len`, `tl`, `flt`, `cat`) after parse. They
-- are reserved at binding LHS for the same reason their canonical forms are:
-- `head=fmt "### {}" s` then `cat [head body] "\n"` would silently rewrite
-- `head` in call position to the `hd` builtin and emit empty output instead
-- of the formatted heading (rerun-prompt-generator + changelog-validator
-- rerun12 papercut, 0.12.1).
--
-- The parser now rejects every alias-named binding LHS and fn-decl with a
-- friendly ILO-P011, mirroring the canonical-builtin and `rng`/`rand`
-- precedents. The first retry is therefore the right one.
--
-- Correct shape below: pick a non-alias name (`hdr` for the header text).
main s:t>t
hdr=fmt "### {}" s
body="see below"
fmt "{} ({})" hdr body
-- run: main Section
-- out: ### Section (see below)