v0.1.0 — the first minor release: zero known bugs.
Over the bug burndown, every open bug-labelled issue — 37 in all — was fixed on a single release/v0.1.0 integration branch, each on its own adversarially-reviewed PR, then the release was cut with a full documentation sweep and the literal "No known bugs."
Highlights
- Silent-miscompile gates.
compare/ ordering on a user ADT (had compiled to a heap-pointer compare) and==on a non-Eqtype (pointer identity, not value equality) are now rejected at check withE242/E243— the severest failure class, closed. - Structural
show/hash/eqover composite, recursive, nested-generic, and generic-mutually-recursive ADTs; a polymorphically-recursiveBox<Box<T>>degrades to a clean skip rather than a traceback. - Effect handlers work over composite / parameterized type arguments.
- Module imports — transitive, nested fn-type-alias, single-uppercase ADT names, and closure-body generics — all resolve.
- Verifier no longer crashes on nested same-ADT constructors; injective Z3 sort names; ADT-typed call-site precondition obligations; contract-predicate degradation.
- Browser
State<T>composite-Floatdefault fixed. - Diagnostics. Zero-size
Array/ generic-@T/ refinement edge cases now reject cleanly at check with a singleE135/E206, never a codegen traceback or a duplicate error.
By the numbers
6,779 tests, 143 conformance programs, 37 examples, 91% code coverage, and a 14-chapter specification.
Full detail for every fix is in CHANGELOG.md and the release PR #938.
🤖 Release prepared with Claude Code