ADR-29: 基底の字句名を chronos とし、axis の二義を解消する
判断: 原始的定義で連続基底を参照する裸名を axis から chronos に改名する
(day = chronos grid 1d)。シグネチャの型名も Axis から Chronos に改める
(grid(w) : Chronos -> Stream(partitioned))。前文メンバー axis:(操作軸の畳み込み既定)と
概念語「軸」(on:/unit: が名指す計数単位。ADR-13・I3)は axis のまま正式名に確定する。
背景: 表現力検証(40-examples)で premise の原始的定義を利用者が書く例が増え、同じ字面 axis が
二つの別概念を指す混線が顕在化した(綻び・spec §5.4 で仮称継続としていた唯一の語)。
(1) 裸名 axis は TZ で錨を打った連続時間軸 Chronos そのもの(ADR-02/09/10 の基底)——窓もラベルも
まだ無い素材で、言語中で唯一 grid だけが受け取り、書くのは暦法定義者だけ。
(2) 前文メンバー axis: は「操作が数える単位」(bizDay・day・hour…)——在圏 calendar: に
解決される離散の有効点ストリーム(ADR-26)で、一般利用者が日常的に書く。
文法上は衝突しない(EBNF では別の生成規則)が、読み手のメンタルモデルで衝突する:
day = axis grid 1d の axis を axis: bizDay の axis と同一視する誤読、「axis: day と書けるのに
day = axis grid 1d の axis は day ではない」という循環気味の読み。基底には言語命名時に固有名
Chronos を与えてある(00-intro §1.1)ため、それを字句に昇格させれば、二義は消え、
「Kairos は Chronos から紡ぐ」という言語の物語が原始的定義の一行目に現れる。
却下した案:
- 裸名を
baseに改名する案(旧候補・draft §4)。派生的定義の説明が「base premise」「Base.wordは base 値にピン」(機構 A・ADR-17)で base という語を多用しており、新たな二義を生む。 - メンバー側
axis:を改名する案(unit:・count:等)。unit:はshift(n, unit: U)の段引数と衝突。 「軸」概念は ADR-13「ロール規約は軸非依存」・I3 の記述に定着済みで、波及が最も広い。 - 現状維持(文脈で区別できるとみなす)。取り違えのサイレント誤読の火種を仕様に残す。統治の基準 (ADR-16「取り違えがサイレント誤結果を生むか」)に照らして採らない。
帰結:
- 純命名の一括置換(意味論の変更なし): 原始的定義の例(
stdlib/gregorian.md・spec §3.6・draft §1.11)と 型名Axisのみ。前文メンバー・段引数・概念語は不変。 axis(操作軸)は仮称を外し正式名に確定——仮称としていた理由(二義)が消えたため。- 残る仮称は
shiftBoundary・射影一族(ordinalIn/labelOf/snapTo/epochOrdinal)・covering:・label:のみ(spec §5.4)。