Skip to content

Commit 89d5707

Browse files
docs: typed-wasm is a meeting point for two unrelated languages (#73)
## Summary Adds a top-of-file [NOTE] admonition to README.adoc making it unambiguous that **AffineScript** and **Ephapax** — both of which target typed-wasm and both of which interface with \`crates/typed-wasm-verify/\` — are two SEPARATE, UNRELATED languages. The shared \`affine\` syllable in both names is substructural-logic family terminology, not a project relationship. Ephapax is internally dyadic and contains an \`ephapax-affine\` sublanguage — that sublanguage is *not* AffineScript. ## Why AI agents have repeatedly conflated AffineScript with Ephapax (or with Ephapax's internal \`ephapax-affine\` sublanguage). The two repos share zero AST / typing / borrow-checker / codegen — they meet only here, at typed-wasm. Workers on \`crates/typed-wasm-verify/\` in particular need to know that the agreement theorems against each consumer are independent. ## Companion PRs - hyperpolymath/ephapax#152 — adds README admonition + CLAUDE.md disambiguation + a2ml [disambiguation] block. - hyperpolymath/affinescript#393 — symmetric hooks in affinescript. - Canonical disambiguation doc at [nextgen-languages/docs/disambiguation/ephapax-vs-affinescript.md](https://github.com/hyperpolymath/nextgen-languages/blob/main/docs/disambiguation/ephapax-vs-affinescript.md) (commit 2fcb55a). ## Test plan - [ ] AsciiDoc renders cleanly on GitHub. - [ ] Admonition appears before the existing \"Progressive type safety\" tagline. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 4d9ee83 commit 89d5707

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

README.adoc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,31 @@ image:https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=opensources
1111
image:https://img.shields.io/badge/believe__me-0-brightgreen[believe_me: 0]
1212
image:https://img.shields.io/badge/Levels-L1--10_checked_core_(L11--12_draft)-blue[Levels: checked core]
1313

14+
[NOTE]
15+
.typed-wasm is a meeting point for two unrelated languages
16+
====
17+
Two distinct languages target this format and interface with the
18+
`crates/typed-wasm-verify/` crate inside this repo:
19+
20+
- **AffineScript** at https://github.com/hyperpolymath/affinescript[`hyperpolymath/affinescript`]
21+
— a successor to JS / TypeScript / ReScript (application language, OCaml compiler).
22+
- **Ephapax** at https://github.com/hyperpolymath/ephapax[`hyperpolymath/ephapax`]
23+
— a research language for WebAssembly memory safety (Rust + Coq + Idris2).
24+
25+
The two **share nothing else**: separate ASTs, separate type checkers,
26+
separate compilers, separate proof stories. The word `affine` overlapping
27+
in both names is substructural-logic-family terminology, not a project
28+
relationship. Specifically: Ephapax is internally dyadic and contains an
29+
`ephapax-affine` *sublanguage* — that sublanguage is *not* AffineScript.
30+
31+
When working on `crates/typed-wasm-verify/`, the agreement theorems against
32+
each consumer are independent — a fix that aligns the verifier with one
33+
language's invariants says nothing about the other.
34+
35+
Canonical disambiguation:
36+
link:https://github.com/hyperpolymath/nextgen-languages/blob/main/docs/disambiguation/ephapax-vs-affinescript.md[nextgen-languages/docs/disambiguation/ephapax-vs-affinescript.md].
37+
====
38+
1439
**Progressive type safety for WebAssembly linear memory — checked L1-L10 core, 0 believe_me in the checked proof package.**
1540

1641
== Two Roles (ADR-004)

0 commit comments

Comments
 (0)