aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef/temporal_ef.mli
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 10:04:21 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 10:04:21 +0200
commit59fbda87d565ad9b98c2493e9703390cd988609d (patch)
tree71ebfb8e9568cd5003c10dabc8804fba4ca66e76 /lib/rites/rite_ef/temporal_ef.mli
parent254cfd7d9111b0f23f9c44e82d3e31d5817dc5a4 (diff)
parente30a4be5a2594fb3b6c4b51345d138cd89ba78ad (diff)
downloadcolitur-59fbda87d565ad9b98c2493e9703390cd988609d.tar.gz
colitur-59fbda87d565ad9b98c2493e9703390cd988609d.zip
Merge branch 'ef-rg112-rg110': the Holy Family, RG 112(a), observed identity
Builds the Feast of the Holy Family (RG 17(b), first Sunday after Epiphany, II class), which did not exist in colitur at all -- it emitted an ordinary Sunday on all 8417 days the feast occurs. Adds RG 112(a)'s exclusion, on RG 95 paragraph 2's authority ('Si vero duo festa eiusdem Divinae Personae ... fit de festo, quod in tabella praecedentiae superiorem obtinet locum, et aliud omittitur'), corroborated by RG 112(a) and by the Holy Family Mass propers' own 13-January rubric. Three validation layers had missed the missing feast, each for its own reason: the differential because lectio lacks it too and shares colitur's data lineage; the golden layer for want of a pin; and the oracle because it compared the observed day's rank and colour but never its identity. That last gap is the more important half of this change and is now closed -- the oracle compares observed identity, with the unresolvable population counted and pinned rather than silently skipped. Also rescales RG 91's band table x10. entry_14_movable_band had been a negative sentinel, chosen to avoid collision with a real table position; it also inverted ordering, making a movable II-class feast of the Lord outrank every I-class day. Unreachable on universal data, live the moment a diocesan overlay places a I-class proper or indult feast in the 7-13 January window. A half-row is now an ordinary position between its neighbours. The rescale was verified entry-by-entry against a photographic scan and moves zero days across the domain. RG 110 is NOT built despite the branch name; it remains open, as do the Holy Name of Jesus office (missing in 3619 of 8417 years) and RG 98's transfer-ordering mechanism.
Diffstat (limited to 'lib/rites/rite_ef/temporal_ef.mli')
-rw-r--r--lib/rites/rite_ef/temporal_ef.mli7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/rites/rite_ef/temporal_ef.mli b/lib/rites/rite_ef/temporal_ef.mli
index a07ffa2..68fe64e 100644
--- a/lib/rites/rite_ef/temporal_ef.mli
+++ b/lib/rites/rite_ef/temporal_ef.mli
@@ -14,6 +14,13 @@ val season : Date.t -> Vocab_ef.season
(** Last Sunday of October, per the 1960 calendar. *)
val christ_the_king : int -> Date.t
+(** RG 17(b): the first Sunday after Epiphany, in civil year [y] -- the
+ Feast of the Holy Family's own date. Always falls 7-13 January
+ inclusive; never empty of a Sunday (unlike RG 17(a)'s Holy Name, whose
+ narrower 2-5 January window can be, and carries an explicit calendarium
+ fallback for it), so this needs none. *)
+val holy_family_sunday : int -> Date.t
+
(** The named temporal days: I-class feasts of the Lord, vigils, and days within
the Octave of the Nativity. Returns (season, slug, colour, rank). Carries
no week of its own -- {!temporal} computes it uniformly via {!week} for