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
feat(betlang): wire-first toolchain pass + bet:Dist T on the unified runtime
Brings the 2026-06-15 wiring work onto the reconciled origin/main (which
carries the parallel session's TP-5 intro/elim core + checker occurs-check
and let-polymorphism). Full rationale and the journey's encounters are in
docs/decisions/2026-06-15-betlang-wiring-and-bet-dist-t.adoc.
- bet : Dist T canonical in the checker (aligns with the Lean tBet rule);
weighted/conditional bets are distributions too; sample : Dist 'a -> 'a.
- Interpreter unified onto bet_rt::Value (one runtime): bet -> Value::Dist,
sample draws; AST lambdas closure-converted to native bet_rt closures.
bet-rt and bet-rand are no longer orphaned.
- JS codegen emits distribution objects so sample works end-to-end.
- Interpreter surfaces unimplemented forms as errors (no silent Unit).
- Justfile parse fix + Rust recipes; workspace greened (bet-wasm/bet-viz/
bet-chapel) + 3 bet-rt runtime bug fixes; cbindgen SPDX header preserved.
- CLI `bet compile`; LSP wired to the real parser + type checker.
- examples/dice.bet (first working .bet fixture).
TP-5 kept at origin's intro/elim core; the richer comonad-law surface is
TP-5b (deferred). 317 workspace tests pass; lake build + proof-scan green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments