1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
(** IGMR n. 53 (Gloria), n. 67-68 (Symbolum/Credo), n. 364-365 and the
Missale Romanum editio typica tertia (2002)'s own printed "INDEX
PRAEFATIONUM" (preface choice) -- see the .ml's own header for every
paragraph quoted in full and every branch's own citation. The OF
counterpart of {!Rite_ef.Rubrics_ef}; same shape, same three functions,
same [Rite.t] signatures -- but see [preface]'s own citation for why
this file's verdict on {!Colitur_kernel.Preface.t} differs sharply from
what {!Rite_ef.Rubrics_ef.preface} was able to build. *)
open Colitur_kernel
(** The one Requiem-shaped entity the shipped OF calendar can ever construct
as [observed] (All Souls, 2 November) -- see the .ml's own header for
why colour cannot serve as the Requiem proxy here the way
{!Colour.Black} does for {!Rite_ef.Rubrics_ef} (OF permits, but never
requires, black vestments for the dead -- IGMR n. 346 e -- and the
shipped data uses violet), so a closed slug list, checked against
[data/of/calendar-2002.sexp] directly, is the only signal available.
Exposed so the test suite can assert this population stays exactly
what it was measured to be, the same discipline
{!Rite_ef.Rubrics_ef.creed_apostle_slugs} already establishes. *)
val requiem_slugs : string list
(** Whether the Gloria in excelsis is said at this day's Mass (IGMR n. 53).
[temporal] is read for exactly one fact -- n. 53's own "diebus dominicis
EXTRA TEMPUS ADVENTUS ET QUADRAGESIMAE": {!Rite_of.Temporal_of.temporal}
tags every Sunday of Advent/Lent/Easter [Sollemnitas] (the same rank a
genuine solemnity carries), so testing [observed.rank] alone would
wrongly grant an Advent or Lent Sunday the Gloria n. 53 explicitly
denies it -- the identical "read temporal, not observed, for a day-of-
week/season fact" discipline {!Rite_ef.Rubrics_ef.creed}'s own RG 475(a)
citation already establishes. [date] is read once, against the rite's
own (Gregorian) Easter, for the two Missale-Romanum-own-rubric
exceptions (Holy Thursday evening Mass, the Easter Vigil Mass) -- see
the .ml's own citation for the primary text, found in the Missal's
Proper of Time rather than the IGMR itself. [observed]'s [slug] is
checked once against {!requiem_slugs} -- see that value's own citation
for why this is an INFERENCE, not an IGMR paragraph, and exactly how
narrowly it is applied. *)
val gloria :
temporal:(Vocab_of.season, Vocab_of.rank) Temporal.t ->
observed:Vocab_of.rank Celebration.t ->
date:Date.t ->
bool
(** Whether the Symbolum (Credo) is said, post-homily, at this day's Mass
(IGMR n. 67-68). Named [creed], not [credo]: IGMR n. 67's own heading is
"Professio fidei" and its body says "Symbolum", never "Credo" (checked
directly, igmr.txt:568-577) -- "Credo" is this file's own prose
shorthand, kept in comments and test labels, but the exported name
matches {!Colitur_kernel.Rite.t.creed}'s own field exactly, the same
"interface name matches the kernel field it satisfies" discipline
{!Rite_ef.Rubrics_ef.creed} already follows. Reads [temporal] for the
identical reason [gloria] does -- n. 68's own "diebus dominicis" is a
plain, weekday-only fact, unlike n. 53's Advent/Lent carve-out, so every
Sunday qualifies (Advent/Lent Sundays INCLUDED, unlike [gloria]) -- and
[observed]'s [rank] for n. 68's own "in sollemnitatibus", and [slug]
against {!requiem_slugs} for the identical reason [gloria] checks it.
Narrower than [gloria] on purpose: n. 68 has no "et festis" clause at
all, so a [Festum]-rank day (an ordinary feast) does NOT get the Creed
-- the one place this function's shape most visibly parts from EF's own
RG 475(b)/(c). [date] is accepted, for signature symmetry with
[gloria]/[preface] and {!Rite.t}'s own shared shape, but genuinely
unread: n. 67-68 carries no Easter-relative window of its own, unlike
RG 475(d)'s three EF octaves -- checked, not assumed (see the .ml's own
citation). *)
val creed :
temporal:(Vocab_of.season, Vocab_of.rank) Temporal.t ->
observed:Vocab_of.rank Celebration.t ->
date:Date.t ->
bool
(** Which preface is said at this day's Mass (IGMR n. 364-365; the Missale's
own "INDEX PRAEFATIONUM"). ALWAYS [None] -- not a stub, a measured
verdict: see the .ml's own header for the full census of the 2002
Missal's preface collection (over 50 individual texts across ~30 named
occasions) against {!Preface.t}'s 15 EF-cited constructors, and why
none of them is safe to reuse. Same three parameters as [gloria]/
[creed], all three genuinely unread -- kept only for {!Rite.t}'s shared
shape. *)
val preface :
temporal:(Vocab_of.season, Vocab_of.rank) Temporal.t ->
observed:Vocab_of.rank Celebration.t ->
date:Date.t ->
Preface.t option
|