Skip to content

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.