[类型 / Types] 评估用户泛型与互递归 ADT / evaluate user generics and mutually recursive ADTs
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- Avg merge
- 57m
- Merged PRs (30d)
- 209
Description
中文说明
版本、顺序与当前进度
版本待定 / P2 / deferred。有限直接自递归和 #262 依赖排序不等于用户泛型/互递归完成。只有真实复用模型与预算明确后才安排具体版本;#264 查询绑定不依赖本 issue。
目标
独立评估用户定义泛型和互递归 named ADT,不把内建 option/list 或已支持的直接自递归当作完成。
范围与验收
Result a b、Tree a、互递归类型组的身份、有限可构造性与错误定位。- 定义 monomorphization/运行时表示、codec、schema hash、migration、索引和 Rust/wire 映射。
- 有真实复用场景和容量预算后才进入实现。
- RFC 明确选择、拒绝项和兼容策略;不得引入无界值或隐式结构类型等价。
English Description
Version, sequence, and current progress
Version TBD / P2 / deferred. Direct self-recursion and #262 dependency ordering do not complete user generics/mutual recursion. Assign a concrete release only after real reuse and budgets are established; #264 does not depend on this issue.
Goal
Evaluate user-defined generics and mutually recursive named ADTs independently, without treating built-in option/list or direct self-recursion as completion.
Scope and Acceptance
- Cover identity, finite constructibility, and diagnostics for
Result a b,Tree a, and mutually recursive groups. - Define monomorphization/runtime representation, codecs, schema hashes, migrations, indexes, and Rust/wire mapping.
- Implementation starts only after real reuse scenarios and capacity budgets exist.
- The RFC records selections, rejections, and compatibility without unbounded values or implicit structural equivalence.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing handling of built-in option/list types and direct self-recursion, then compare the requirements for Result a b, Tree a, and mutually recursive groups. The RFC is done when it records representation, codecs, schema hashes, migrations, indexes, Rust/wire mapping, selected and rejected approaches, compatibility rules, reuse scenarios, and capacity budgets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100