Catalyst Enhancement Proposals¶
Catalyst Enhancement Proposals, or CEPs, record substantial language-design directions before they are accepted into the active reference docs.
Use a CEP when an idea is coherent enough to preserve, but too broad or dependent on other decisions to silently fold into a V1 page. A CEP should capture one clear coherent proposed idea, not a bag of roughly adjacent future features. If a draft starts needing several independent acceptance criteria, split it into focused CEPs and link them through Related Details. Active reference docs remain the source of truth for accepted behavior; CEPs describe proposed or deferred direction.
See CEP Format for proposal structure and maintenance rules.
Proposal Index¶
| CEP | Title | Status |
|---|---|---|
| CEP-0001 | Concrete Type Unions | Draft |
| CEP-0002 | Pattern Matching and Narrowing | Draft |
| CEP-0003 | Package Manager and Manifest Evolution | Draft |
| CEP-0004 | Function Overloading | Draft |
| CEP-0005 | Fallible Iterator Families | Draft |
| CEP-0006 | Runtime Type Identity and Dyn Casts | Draft |
| CEP-0007 | C ABI Compound Types and Error Returns | Draft |
| CEP-0008 | Copy, Clone, and Ownership Capabilities | Draft |
| CEP-0009 | Generated Declarations and Impls | Draft |
| CEP-0010 | Aliasing and Exclusivity Annotations | Draft |
| CEP-0011 | General Extension Methods | Draft |
| CEP-0012 | Generic Syntax and Const Generics | Rejected |
| CEP-0013 | Explicit Numeric Arithmetic Modes | Draft |
| CEP-0014 | Custom Ranges and Step Semantics | Draft |
| CEP-0015 | Named Arguments | Draft |
| CEP-0016 | Generic Parameter Inference | Draft |
| CEP-0017 | Function Literals and Callable Values | Draft |
| CEP-0018 | Contextful Iterator Families | Draft |
| CEP-0019 | Owned Dynamic Iterator Construction | Draft |
| CEP-0020 | Realtime Enforcement Regions | Draft |
| CEP-0021 | Type Members | Draft |
| CEP-0022 | Standalone Type Qualifiers | Draft |
| CEP-0023 | Extended Float Types | Draft |
| CEP-0024 | Unchecked Indexing | Draft |
| CEP-0025 | Compiler Intrinsic Expression Syntax | Draft |
| CEP-0026 | Comptime Host Access | Draft |
| CEP-0027 | Source Text and Value Reflection | Draft |
| CEP-0028 | Comptime Resource Limits | Draft |
| CEP-0029 | Predicate Fact Algebra | Draft |
| CEP-0030 | Attribute Target Expansion | Draft |
| CEP-0031 | Attribute Semantic Effects | Draft |
| CEP-0032 | User-Defined Operator Overloading | Draft |
| CEP-0033 | Opening Dyn for Static Generics | Draft |
| CEP-0034 | Comptime-Only Contract Operations | Draft |
| CEP-0035 | Public Dyn ABI | Draft |
| CEP-0036 | Box Dyn Small-Object Optimization | Draft |
| CEP-0037 | Impl-Only Imports | Draft |
| CEP-0038 | Expected-Type Dyn Conversions | Draft |
| CEP-0039 | Smart-Pointer Forwarding | Draft |
| CEP-0040 | Bodyless Foreign Function Declarations | Draft |
| CEP-0041 | Generated C Headers | Draft |
| CEP-0042 | Custom Link-Name Expressions | Draft |
| CEP-0043 | Exported Methods and Generic Specializations | Draft |
| CEP-0044 | First-Class Lint Engine | Draft |
| CEP-0045 | LSP Feature Scope | Draft |
| CEP-0046 | Standard Collections | Draft |
| CEP-0047 | Standard Allocator Implementations | Draft |
| CEP-0048 | Standard Text and Formatting | Draft |
| CEP-0049 | Standard Result Policy | Draft |
| CEP-0050 | Async, Concurrency, and Effects | Draft |
| CEP-0051 | Advanced Ownership Move-Out APIs | Draft |
| CEP-0052 | LLVM Backend and SSA Optimizer | Draft |
| CEP-0053 | Ecosystem Tooling and Platform APIs | Draft |
| CEP-0054 | Standard Utility APIs | Draft |
| CEP-0055 | Compound Assignment Operators | Draft |
| CEP-0056 | Bitwise and Shift Operators | Draft |
| CEP-0057 | Reassignable Loop Bindings | Draft |
| CEP-0058 | Source-Level Optimization Hints | Draft |
| CEP-0059 | Testing Allocator and Leak Reporting | Draft |
| CEP-0060 | Newline-Permissive Trailing Continuations | Draft |
| CEP-0061 | Incremental Comptime Cache Invalidation | Draft |
| CEP-0062 | Observable Memory Accesses | Draft |
| CEP-0063 | Representation Modes and C Layout | Draft |
| CEP-0064 | Inline Namespace Expressions | Draft |
| CEP-0065 | Error-Only Defer | Draft |
| CEP-0066 | Extended Integer Widths | Draft |
| CEP-0067 | Comptime-Known Mixed Integer Arithmetic | Draft |
| CEP-0068 | Value-Producing Local Declarations | Draft |
Status Terms¶
Draft- A captured direction that still needs design work.
Accepted- A proposal accepted as future direction. The active docs still need separate edits before the feature becomes current behavior.
Superseded- A proposal replaced by another proposal or accepted design.
Rejected- A direction intentionally not pursued.