worktools / worktools/unionid

[类型 / Types] 评估用户泛型与互递归 ADT / evaluate user generics and mutually recursive ADTs

Open
#118 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

deferred design priority/P2
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 bTree 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.