日本語 · English(未訳)

ADR-20: 生成子は暦法純粋。カレンダー依存は後段に限る

判断: 生成子(monthEndeveryDayweekly など、時間ストリームを無から生む演算子)は 暦法(calendar-system)だけに依存し、カレンダー(営業日・祝日)には依存しない。カレンダーが関与するのは 後段の点変換(roll/shift)・フィルタ(営業日で間引く)以降に限る。

背景: 「@JP としたとき monthEnd は 2026-05-31 を含むか」という問いから確定した。monthEnd は 「月という窓の最終要素」であり、暦法 Gregorian の窓分割だけで決まる。その日が営業日かどうかは monthEnd の 関知するところではない。ゆえに monthEnd は常に 2026-05-31(暦日としての月末)を含み、TSE 等のカレンダーは 関与しない。「Gregorian+TSE 基準の monthEnd」という合成はカテゴリーエラーである。月の最終日は構造(暦法が 決める)、それが営業日かは方針(カレンダーが決める)で別層(ADR-03「曜日は構造、週末休は方針」の再来)。

もし生成子がカレンダー依存だったら、「月末」の意味が TSE か NYSE かで変わり、monthEnd という名前が premise で ブレて ADR-17 の危険(同名が別物に解決される)を生む。それを避けるため生成子を暦法純粋に保つ。

却下した案: businessDays(on: TSE) のような、カレンダー依存の生成子を第一級に認める案。生成子の暦法純粋性を 破り、かつ生成+フィルタの畳み込み(ADR-06 の畳み込み禁止)に抵触するため却下。営業日の列は everyDay |> filter(on: TSE)(生成子+後段フィルタ)で作る。

帰結: