Requests for Comments (RFCs)¶
RFCs are governed design and evolution proposals (PEP-style). They are primarily for contributors and advanced readers.
ProposeWrite an RFCUse the repository process and template for a design that changes the language, tooling, or architecture.
RecordBrowse design recordsRead smaller accepted decisions and deferrals that preserve context without replacing the RFC process.
PlanRead the roadmapSee release direction and delivery context. RFC status alone does not promise a release.
Design records, not canonical user docs
RFCs explain why a design exists and how it evolved. User-facing behavior remains canonical in the Language and Tooling documentation.
Index¶
Tip: press Esc to clear.
| RFC | Status | Track | Title |
|---|---|---|---|
| RFC 000 | Done | closed / implemented | Incan Core Language RFC (Phase 1) |
| RFC 001 | Superseded | closed / superseded | Test Fixtures |
| RFC 002 | Superseded | closed / superseded | Parametrized Tests |
| RFC 003 | Superseded | closed / superseded | Frontend and WebAssembly Support |
| RFC 004 | Done | closed / implemented | async fixtures |
| RFC 005 | Done | closed / implemented | Rust Interop |
| RFC 006 | Done | closed / implemented | Python-style generators |
| RFC 007 | Superseded | closed / superseded | Inline Tests |
| RFC 008 | Done | closed / implemented | Const Bindings |
| RFC 009 | Done | closed / implemented | Numeric type system and builtin type registry |
| RFC 010 | Done | closed / implemented | Python-style tempfile standard library |
| RFC 011 | Done | closed / implemented | Precise Error Spans in F-Strings |
| RFC 012 | Superseded | closed / superseded | JsonValue, enum methods, and enum trait adoption |
| RFC 013 | Done | closed / implemented | Rust Crate Dependencies |
| RFC 014 | Rejected | closed / rejected | user-facing runtime error behavior for generated code |
| RFC 015 | Done | closed / implemented | hatch-like tooling (project lifecycle CLI) |
| RFC 016 | Done | closed / implemented | loop and break <value> (Loop Expressions) |
| RFC 017 | Done | closed / implemented | Validated newtypes with implicit coercion (pydantic-like feel) |
| RFC 018 | Done | closed / implemented | language primitives for testing |
| RFC 019 | Done | closed / implemented | test runner, CLI, and ecosystem |
| RFC 020 | Done | closed / implemented | offline / locked / reproducible builds (Cargo policy + generated project contract) |
| RFC 021 | Done | closed / implemented | Model field metadata and schema-safe aliases |
| RFC 022 | Done | closed / implemented | Namespaced stdlib modules and compiler→stdlib handoff |
| RFC 023 | Done | closed / implemented | Compilable Stdlib & Rust Module Binding |
| RFC 024 | Done | closed / implemented | extensible derive protocol |
| RFC 025 | Done | closed / implemented | multi-instantiation trait dispatch |
| RFC 026 | Superseded | closed / superseded | User-Defined Trait Bridges |
| RFC 027 | Done | closed / implemented | incan-vocab — Library Vocabulary Registration Crate |
| RFC 028 | Done | closed / implemented | trait-based operator overloading |
| RFC 029 | Done | closed / implemented | union types and type narrowing |
| RFC 030 | Done | closed / implemented | std.collections — extended collection types |
| RFC 031 | Done | closed / implemented | Incan Library System — Phase 1 (Local Path Dependencies) |
| RFC 032 | Blocked (by RFC 033) | proposed / active | value enums — StrEnum and IntEnum |
| RFC 033 | Planned | proposed / active | ctx — typed configuration context |
| RFC 034 | Superseded | closed / superseded | incan.pub — The Incan Package Registry |
| RFC 035 | Done | closed / implemented | First-Class Named Function References |
| RFC 036 | Done | closed / implemented | user-defined decorators |
| RFC 037 | Planned | proposed / active | native web stdlib redesign |
| RFC 038 | Done | closed / implemented | Variadic Args and Unpacking (*args / **kwargs) |
| RFC 039 | Done | closed / implemented | race for awaitable concurrency |
| RFC 040 | Done | closed / implemented | Scoped DSL Surface Forms |
| RFC 041 | Done | closed / implemented | First-Class Rust Interop Authoring |
| RFC 042 | Done | closed / implemented | Traits Are Always Abstract |
| RFC 043 | Done | closed / implemented | Rust Trait Implementation from Incan |
| RFC 044 | Done | closed / implemented | Open-Ended Trait Methods |
| RFC 045 | Done | closed / implemented | Scoped DSL symbol surfaces |
| RFC 046 | Done | closed / implemented | Computed properties (property name -> Type) |
| RFC 047 | Done | closed / implemented | Lightweight directed graph types (stdlib) |
| RFC 048 | Done | closed / implemented | Checked contract metadata, Incan emit, and interrogation tooling |
| RFC 049 | Done | closed / implemented | if let and while let pattern control flow |
| RFC 050 | Done | closed / implemented | Enum methods and enum trait adoption |
| RFC 051 | Done | closed / implemented | JsonValue for std.json |
| RFC 052 | Done | closed / implemented | Module Static Storage |
| RFC 053 | Done | closed / implemented | Formatter vertical spacing (three blank-line buckets) |
| RFC 054 | Done | closed / implemented | Explicit call-site generic arguments for function and method calls |
| RFC 055 | Done | closed / implemented | std.fs — pathlib-shaped filesystem APIs with chunked file I/O |
| RFC 056 | Done | closed / implemented | std.io — in-memory byte streams and binary parsing helpers |
| RFC 057 | Done | closed / implemented | @rust.allow(...) — targeted Rust lint suppression for generated code |
| RFC 058 | Done | closed / implemented | std.datetime — temporal values, intervals, and runtime timing |
| RFC 059 | Done | closed / implemented | std.regex — regular expressions, matches, captures, and replacement |
| RFC 060 | Done | closed / implemented | std.uuid — UUID parsing, generation, and formatting |
| RFC 061 | Done | closed / implemented | std.compression — codec-based compression and decompression |
| RFC 062 | Planned | proposed / active | std.archive — archive container creation and extraction |
| RFC 063 | Planned | proposed / active | std.process — process spawning and command execution |
| RFC 064 | Done | closed / implemented | std.encoding — binary-text encoding and decoding utilities |
| RFC 065 | Done | closed / implemented | std.hash — stable hashing primitives for data and integrity workflows |
| RFC 066 | Planned | proposed / active | std.http — Incan-first HTTP client and request/response surface |
| RFC 067 | Rejected | closed / rejected | std.ci — deterministic CI and automation scripting primitives |
| RFC 068 | Done | closed / implemented | protocol hooks for core language syntax |
| RFC 069 | Done | closed / implemented | list.repeat Helper for Fixed-Length Initialization |
| RFC 070 | Done | closed / implemented | Result Combinators for Result[T, E] |
| RFC 071 | Done | closed / implemented | Pattern alternation in match and if let |
| RFC 072 | Done | closed / implemented | std.logging — logger acquisition, configuration, and structured events |
| RFC 073 | Planned | proposed / active | environment matrices and toolchain constraints |
| RFC 074 | Planned | proposed / active | template rendering and boilerplate provenance |
| RFC 075 | Planned | proposed / active | starter profiles and mixes |
| RFC 076 | Planned | proposed / active | project mutation policy and recovery |
| RFC 077 | Done | closed / implemented | workspace and multi-package projects |
| RFC 078 | Planned | proposed / active | tool execution and typed workflow actions |
| RFC 079 | Planned | proposed / active | loaves.pub artifact graph |
| RFC 080 | Planned | proposed / active | Declared AI assets |
| RFC 081 | Done | closed / implemented | Language-shaped DSL embeddings |
| RFC 082 | Planned | proposed / active | Checked API documentation generation |
| RFC 083 | Done | closed / implemented | Symbol and method aliases |
| RFC 084 | Done | closed / implemented | RHS partial callable presets |
| RFC 085 | Planned | proposed / active | Field metadata and type-shaped constraints |
| RFC 086 | Deferred | proposed / active | Schema descriptors and adapters |
| RFC 087 | Planned | proposed / active | Reusable field contracts and model contract composition |
| RFC 088 | Done | closed / implemented | Iterator adapter surface |
| RFC 089 | Done | closed / implemented | std.environ runtime environment access |
| RFC 090 | Planned | proposed / active | typed CLI framework |
| RFC 091 | Planned | proposed / active | Integer storage carriers |
| RFC 092 | Rejected | closed / rejected | Interactive Runtime Stdlib Contracts |
| RFC 093 | Planned | proposed / active | std.telemetry — OpenTelemetry-aligned observability |
| RFC 094 | Planned | proposed / active | Context managers |
| RFC 095 | Planned | proposed / active | span vocabulary blocks |
| RFC 096 | Planned | proposed / active | Declaration metadata blocks |
| RFC 097 | Planned | proposed / active | Rust-hosted Incan caller |
| RFC 098 | Planned | proposed / active | Native associated types for traits |
| RFC 099 | Planned | proposed / active | Generic trait-targeted methods |
| RFC 100 | Planned | proposed / active | std.re — Pythonic regular expressions |
| RFC 101 | Done | closed / implemented | std.collections.OrdinalMap — deterministic compact key-to-ordinal lookup |
| RFC 102 | Planned | proposed / active | Incan Semantic Layer Inspection Surface |
| RFC 103 | Planned | proposed / active | std.secrets — Secret strings, secret bytes, and redaction-safe values |
| RFC 104 | In Progress | proposed / active | Ambient Runtime Capabilities and Receipts |
| RFC 105 | Planned | proposed / active | oven architect rule engine for design, safety, idiom, maintainability, and risk findings |
| RFC 106 | In Progress | proposed / active | Compiler-backed agent context graph |
| RFC 107 | Planned | proposed / active | Type-directed library APIs and compile-time type tokens |
| RFC 108 | Planned | proposed / active | Import-scoped extensions |
| RFC 109 | Planned | proposed / active | Receiver chain combinators (tap and then) |
| RFC 110 | Planned | proposed / active | Three-way comparison with __cmp__ |
| RFC 111 | Planned | proposed / active | Proof-aware agentic contract feedback |
| RFC 112 | Done | closed / implemented | Crash-safe local publication and file coordination |
| RFC 113 | Done | closed / implemented | std.registry and declaration descriptors |
| RFC 114 | Done | closed / implemented | Compiled providers, SDK components, and package features |
| RFC 115 | Done | closed / implemented | Fallible iteration and combinators |
| RFC 116 | Done | closed / implemented | Typed C ABI interop |
| RFC 117 | Planned | proposed / active | loaf.toml and Oven's language-neutral project model |
| RFC 118 | Planned | proposed / active | Incan and Oven command-line surfaces |
| RFC 119 | In Progress | proposed / active | Oven-native Rust build facets and Cargo interoperation |
| RFC 120 | Done | closed / implemented | canonical source symbol identity |
| RFC 121 | Planned | proposed / active | Unified Incan/Rust type substrate |
| RFC 122 | Planned | proposed / active | Composable model construction with fieldmethods and new |
| RFC 123 | In Progress | proposed / active | Package executable representation |
| RFC 124 | Planned | proposed / active | Oven store unit identity and cross-plan artifact sharing |
| RFC 125 | Planned | proposed / active | loaves.pub Loaf registry and baked asset distribution |
| RFC 126 | Planned | proposed / active | Evidence-backed investigations |
| RFC 127 | Planned | proposed / active | The Incan lint catalog: clippy-conformant rules, loaf.toml configuration, incan architect as engine and fixer, incan fmt as canonicalizer |
| RFC 128 | Planned | proposed / active | One Callable[(A, B) -> R] trait over function types |
| RFC 129 | Planned | proposed / active | Shared or copied bindings and the mut parameter contract |
| RFC 130 | Planned | proposed / active | Implicit None return annotations |
| RFC 131 | Planned | proposed / active | First-class error declarations |
| RFC 132 | Planned | proposed / active | Frozen classes and models |
| RFC 133 | Planned | proposed / active | Literal types and compile-time value sets |
| RFC 134 | Planned | proposed / active | Pattern bindings with exiting fallbacks |
| RFC 135 | Planned | proposed / active | Lazy Option defaults with or |
| RFC 136 | Planned | proposed / active | Chained comparisons |
| RFC 137 | Planned | proposed / active | Named enum payload fields |
| RFC 138 | Planned | proposed / active | Chained pattern conditions |
| RFC 139 | Planned | proposed / active | Sequence patterns |
| RFC 140 | Planned | proposed / active | Typed holes |
| RFC 141 | Planned | proposed / active | Type matching with infer and named type operations |
| RFC 142 | Planned | proposed / active | Async composition, iteration, and streams |
| RFC 143 | Planned | proposed / active | Cloning with field overrides |
| RFC 144 | Planned | proposed / active | Trait fields and type-owned constants |
| RFC 145 | Planned | proposed / active | Oven storage lifecycle, retention and compact evidence |
| RFC 146 | Planned | proposed / active | Typed JSON decoding and complete validation |
| RFC 147 | Planned | proposed / active | Result matching with except |
| RFC 148 | Planned | proposed / active | Must-use values and deliberate discard |
| RFC 149 | Planned | proposed / active | Non-exhaustive public contracts |
| RFC 150 | Planned | proposed / active | Deprecation diagnostics |
| RFC 151 | Planned | proposed / active | Final classes |
| RFC 152 | Planned | proposed / active | Recursion that never overflows the stack |
| RFC 153 | Planned | proposed / active | Async closures |
| RFC 154 | Planned | proposed / active | Retained capturing callables |
| RFC 155 | Planned | proposed / active | Relaxed floating-point arithmetic |
| RFC 156 | Planned | proposed / active | Typed MCP servers |
| RFC 157 | Planned | proposed / active | Chained pattern guards |
| RFC 158 | Planned | proposed / active | Incremental XML records over split and compressed inputs |
| RFC 159 | Planned | proposed / active | Cloves (C-library Loaves) and the managed C toolchain |
| RFC 160 | Planned | proposed / active | Vocabulary in Incan and native desugarers |
| RFC 161 | Planned | proposed / active | The semantic core (SCIR) |
| RFC 162 | Planned | proposed / active | File syntax: vocabularies, dialects and frontends |
| RFC 163 | Planned | proposed / active | Cross-target builds and toolchain target support |
| RFC 164 | Planned | proposed / active | Explicit ownership and borrowing contracts |
| RFC 165 | Planned | proposed / active | Typed embedded storage with std.db |
| RFC 166 | Planned | proposed / active | Indexed graphs and snapshot-bound graph access |
| RFC 167 | Planned | proposed / active | Debugging and diagnostics for Incan programs and tools |
| RFC 168 | Planned | proposed / active | std.primitives |
| RFC 169 | Planned | proposed / active | Typed record sets and record streams |
| RFC 171 | In Progress | proposed / active | Retire @rust.allow, @rust.extern and rust.module |
| RFC 172 | In Progress | proposed / active | Async syntax without an import |
| RFC 173 | Planned | proposed / active | Walking and reconstructing typed values |
| RFC 174 | Planned | proposed / active | Overloaded functions and methods |
| RFC 175 | Planned | proposed / active | Bidirectional controls and confusable identifiers |
| RFC 176 | Planned | proposed / active | Visibility |
| RFC 177 | Planned | proposed / active | Comprehensions |
See also¶
- RFC template: TEMPLATE
- How to write an RFC: Writing RFCs (how-to)
- Project records overview: Follow the project