You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document what rc.10-57 changed about foreach, and fix what it caught
Three changes, all verified by compiling rather than read off the commits.
`foreach` now binds its element over the loop body, so the natural example
comes back OUT of the precise skip it was parked under and is gated again.
The control matters more than the fix: `line.nosuch` is still an Error, so
the binding carries the element's TYPE and did not become a hole admitting
any member.
`foreach` also iterates any resolvable collection, which answers the ruling
this repo asked for — the dotted `order.lines` was not a deliberate
restriction. The wrapper's iterable therefore moves back onto `order`,
where an author would put it, instead of being hoisted to a direct field of
the state to satisfy the old rule.
`foreach k, v` destructuring is new and documented in both the concepts
page and the reference, with the arity errors tabulated in both directions
— one name over a mapping, two over anything else. Each documented example
was compiled before prose was written around it.
Caught by the upgrade: `type.md`'s `mapping from Pattern(...) to
DictionaryEntry` named a type that does not exist. It passed only because a
mapping's VALUE type was never resolved; rc.10-57 resolves it. Same shape
as the interaction-group fix — a resolver gap closing turns a silent pass
into a real failure, and the example was wrong all along.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments