jolt/docs/rfc
Yogthos e7473f38cf docs: RFC 0005 structural type inference + RFC 0006 success type checking
0005 proposes replacing the ad-hoc inference lattice with one recursive
structural type (a struct carries its field types, a vector its element type,
recursively), so a lookup returns its field's type and nested access is typed
end to end. It unifies :struct tracking with field tracking, subsumes the
current inference phases, and is the soft-typing (HM + a dynamic top) design:
structural types + core-fn type schemes, solved by lattice join with :any as
top instead of unify-or-fail. Includes the depth cap for termination and an
explicit design-problems section.

0006 (follow-up, depends on 0005) reuses the inference as a loose type checker
in the success-typing discipline (Dialyzer): report only PROVABLY-wrong code
(a concrete type in an operation's throwing error-domain), accept everything
ambiguous, never a false positive. Curated error-domain table, strictness
levels (off/warn/error), clear located messages, and the soundness boundaries
(closed-world, macros, unions).
2026-06-13 10:17:21 -04:00
..
0001-language-specification.md docs: language specification RFC + spec skeleton with normative exemplars 2026-06-10 10:53:44 -04:00
0002-reader-conditional-features.md reader: feature set #{:jolt :default}, clause-order matching (RFC 0002) 2026-06-10 11:40:06 -04:00
0003-transients.md core: enforce fn arity in both modes (jolt-6xn); canonical seq-to-map-for-destructuring 2026-06-11 16:20:14 -04:00
0004-type-hints.md feat: expand type-hint lookup specialization (^Record, get-form, checked mode, docs) 2026-06-12 20:20:25 -04:00
0005-structural-type-inference.md docs: RFC 0005 structural type inference + RFC 0006 success type checking 2026-06-13 10:17:21 -04:00
0006-success-type-checking.md docs: RFC 0005 structural type inference + RFC 0006 success type checking 2026-06-13 10:17:21 -04:00