Repro (A/B, byte-identical bodies — verified at 2b1b383d)
ns repro
def r1 :=
:eu {:host "eu.example.com" :port 443}
:us {:host "us.example.com" :port 443}
;; => ERROR: Could not infer type
def r2
:eu {:host "eu.example.com" :port 443}
:us {:host "us.example.com" :port 443}
;; => r2 : {:eu {:host String :port Int} :us {:host String :port Int}} defined.
The only difference is the := on the def head. The implicit-map form
(def r2, no :=) elaborates the identical layout body to a fully-typed
nested row; the := form fails.
Trigger shape
Fiddly, which itself suggests a defect rather than a documented restriction:
def X := + a layout body with >= 2 top-level keys fails
def X := + >= 2 dash items where one carries a multi-line @[...] fails
- single-line
:= bodies (def X := {:a 1}) work
- the same multi-key layout body under
def X (no :=) works
Diagnosis notes
- The diagnostic —
Could not infer type — names the wrong subsystem; this is
a parse/layout seam (the body's keys are apparently not being folded into a
map literal under the := head), not a typing failure.
- Adjacent history: the implicit-map def WS path was touched in the
2026-07-18 hand-testing arc (ff31d237, process-string-ws parity), so this
seam has moved recently.
- Found while running the Path Selection spec's Appendix fixtures
(4 of its def X := forms hit this). Workaround used in corpus files:
the def X implicit-map form.
Filed from the CIU T6 Path Selection D5 critique (2026-07-28); also recorded
in docs/tracking/DEFERRED.md.
Repro (A/B, byte-identical bodies — verified at
2b1b383d)The only difference is the
:=on the def head. The implicit-map form(
def r2, no:=) elaborates the identical layout body to a fully-typednested row; the
:=form fails.Trigger shape
Fiddly, which itself suggests a defect rather than a documented restriction:
def X :=+ a layout body with >= 2 top-level keys failsdef X :=+ >= 2 dash items where one carries a multi-line@[...]fails:=bodies (def X := {:a 1}) workdef X(no:=) worksDiagnosis notes
Could not infer type— names the wrong subsystem; this isa parse/layout seam (the body's keys are apparently not being folded into a
map literal under the
:=head), not a typing failure.2026-07-18 hand-testing arc (
ff31d237, process-string-ws parity), so thisseam has moved recently.
(4 of its
def X :=forms hit this). Workaround used in corpus files:the
def Ximplicit-map form.Filed from the CIU T6 Path Selection D5 critique (2026-07-28); also recorded
in
docs/tracking/DEFERRED.md.