nested dip #472

Merged
navicore merged 2 commits from dip into main 2026-05-11 04:11:01 +00:00
Owner
https://git.navicore.tech/navicore/patch-seq/issues/471
nested dip
All checks were successful
CI - Linux / CI - Linux x86_64 (pull_request) Successful in 8m58s
dad1aa5f5e
⏺ Phase 2 complete. Final results:
  - 529 integration tests passing (up from 523 — the 6 new nested-combinator tests
  added cleanly)
  - All just ci checks green: fmt, clippy -D warnings, unit tests (5 new), examples,
  integration tests (6 new), seqc lint, no_dead_code

  What's in the working tree:

  File: crates/compiler/src/typechecker/stack_utils.rs
  Change: polymorphic_pop method with full doc-comment of the rigid-vs-flexible rule
  ────────────────────────────────────────
  File: crates/compiler/src/typechecker/combinators.rs
  Change: wired into infer_dip, infer_keep, infer_bi, infer_if_combinator
  ────────────────────────────────────────
  File: crates/compiler/src/typechecker/control_flow.rs
  Change: wired into infer_if (literal-if AST-normalized path)
  ────────────────────────────────────────
  File: crates/compiler/src/typechecker/tests.rs
  Change: 5 new unit tests
  ────────────────────────────────────────
  File: tests/integration/src/test-combinators-nested.seq
  Change: 6 end-to-end tests, including the canonical issue #471 case
  ────────────────────────────────────────
  File: docs/TYPE_SYSTEM_GUIDE.md
  Change: new "Refinement Inside Quotation Bodies" subsection
  ────────────────────────────────────────
  File: docs/design/NESTED_DIP_ROW_POLY.md
  Change: full design doc with Phase 1 prototype-result section

  Out-of-repo follow-up: Seqlings chapter 37 exercise 04 (04-dip-deeper) can revert to
   the natural [ [ q ] dip ] dip shape now that the typechecker accepts it.

  Saving the design-process lesson to memory.

  Recalled 1 memory, wrote 2 memories (ctrl+o to expand)

⏺ Issue #471 closed at the root: row-polymorphic refinement inside quotation bodies
  now works for dip/keep/bi/if, with the rigid-rest boundary preserving soundness at
  declared signatures. 5 typechecker unit tests + 6 integration tests + a
  TYPE_SYSTEM_GUIDE.md section pin the new behavior; design doc records the prototype
  findings and the go decision.
Sign in to join this conversation.
No description provided.