Skip to main content

Mochi Enhancement Proposals

A MEP is a design document for the Mochi language, type system, and toolchain. The full process is described in MEP 0. The list below is generated from the frontmatter of every mep-NNNN.md file in the docs tree, so new proposals appear here automatically once npm run gen:meps (or any npm start / npm run build) regenerates the manifest.

All MEPs

MEPTitleStatus
0000Index of Mochi Enhancement Proposals
Index of Mochi Enhancement Proposals.
Active
0001Lexer
Mochi's token classes, reserved words, lexical errors, and conformance corpus, specified end-to-end with no corner cases.
Informational
0002Grammar
Mochi's PEG grammar in full, with the design principles and conformance obligations that fix the language.
Informational
0003Abstract Syntax Tree
Mochi's AST as a closed family of tagged unions, the encoding that makes parse output unambiguous, and the soundness invariants every consumer can rely on.
Informational
0004Type System
The kinds, the comparisons, the numeric tower, and the places where Mochi's type system does not yet do what it claims.
Informational
0005Type Inference
Strict static algebraic type inference. Principal types, no implicit any, no null.
Standards Track
0006Type Checker
Entry point, builtin environment, statement walk, and the diagnostic catalogue.
Informational
0007Soundness
Progress, preservation, and the test obligations that prove them.
Active
0008Test Strategy
The five test layers, the golden harness, and the TAPL chapter mapping.
Active
0009Fixture Catalogue
Inventory of parser and type fixtures with a property coverage matrix.
Informational
0010Known Gaps and Weakness Review
Catalogue of soundness gaps, surprising behavior, and tracked follow-ups.
Informational
0011Subtyping and Variance
A separate subtype predicate, the variance lattice, and the closure of any.
Active
0012Parametric Polymorphism
System-F-lite call-site inference, fresh type variables, and the end of any-builtins.
Active
0013Algebraic Data Types and Match
Struct and union typing rules, match exhaustiveness, irredundancy, and recursive types.
Draft
0014Query Algebra
LINQ-shaped query expressions, clause-by-clause type rules, and aggregate semantics.
Informational
0015Effects
A labeled effect system over function types. Pure by default, inferred from the body, annotatable at module boundaries, enforced where purity matters.
Draft
0016Null Safety
Total option discipline with no force unwrap, flow narrowing, safe-call and coalesce operators, and a no-panic guarantee.
Draft

Process

MEPTitleStatus
0000Index of Mochi Enhancement Proposals
Index of Mochi Enhancement Proposals.
Active
0007Soundness
Progress, preservation, and the test obligations that prove them.
Active
0008Test Strategy
The five test layers, the golden harness, and the TAPL chapter mapping.
Active

Informational

MEPTitleStatus
0001Lexer
Mochi's token classes, reserved words, lexical errors, and conformance corpus, specified end-to-end with no corner cases.
Informational
0002Grammar
Mochi's PEG grammar in full, with the design principles and conformance obligations that fix the language.
Informational
0003Abstract Syntax Tree
Mochi's AST as a closed family of tagged unions, the encoding that makes parse output unambiguous, and the soundness invariants every consumer can rely on.
Informational
0004Type System
The kinds, the comparisons, the numeric tower, and the places where Mochi's type system does not yet do what it claims.
Informational
0006Type Checker
Entry point, builtin environment, statement walk, and the diagnostic catalogue.
Informational
0009Fixture Catalogue
Inventory of parser and type fixtures with a property coverage matrix.
Informational
0010Known Gaps and Weakness Review
Catalogue of soundness gaps, surprising behavior, and tracked follow-ups.
Informational
0014Query Algebra
LINQ-shaped query expressions, clause-by-clause type rules, and aggregate semantics.
Informational

Standards Track

MEPTitleStatus
0005Type Inference
Strict static algebraic type inference. Principal types, no implicit any, no null.
Standards Track
0011Subtyping and Variance
A separate subtype predicate, the variance lattice, and the closure of any.
Active
0012Parametric Polymorphism
System-F-lite call-site inference, fresh type variables, and the end of any-builtins.
Active
0013Algebraic Data Types and Match
Struct and union typing rules, match exhaustiveness, irredundancy, and recursive types.
Draft
0015Effects
A labeled effect system over function types. Pure by default, inferred from the body, annotatable at module boundaries, enforced where purity matters.
Draft
0016Null Safety
Total option discipline with no force unwrap, flow narrowing, safe-call and coalesce operators, and a no-panic guarantee.
Draft