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
|
(** OF (post-1970) season and rank vocabulary. *)
type season =
| Advent
| Christmas
| Lent
| Easter
| Ordinary_time
[@@deriving sexp]
(** Normae universales de anno liturgico et de calendario (Missale Romanum
editio typica tertia, 2002), Titulus I ("De diebus liturgicis"), and the
Institutio Generalis Missalis Romani (IGMR) n. 346's own colour-rule
prose, both cite the four graded celebrations by these exact names: a
Sunday-or-weekday MYSTERY of the Lord that ranks above everything else
([Sollemnitas]), a lesser but still universally-binding celebration
([Festum]), a saint's day the calendar obliges everyone to keep
([Memoria_obligatoria]), and one a community may keep or not
([Memoria_ad_libitum]).
A FIFTH constructor, [Feria], is added beyond those four -- not a fifth
grade on the same scale, but a different kind of thing: an ordinary
weekday carries none of the four (Normae Titulus I.IV n. 16 calls these
days "feriae", never a "celebratio" of any grade), yet
{!Colitur_kernel.Celebration.t} requires a [rank] on every day the way
{!Colitur_kernel.Vocab_ef}'s own catch-all [Class4] does for EF. Ferias
are graded for PRECEDENCE (privileged Lenten/Advent ferias outrank an
ordinary one, per the Tabula dierum liturgicorum's own entries 2, 9 and
13) but that grading is a {!Colitur_kernel.Precedence.rules.band} table
lookup (Phase 2), not a distinct [rank] value -- unlike EF, where
[Class2]/[Class3]/[Class4] carry a privileged feria's own grade directly.
See vocab_of.ml's own top-of-file comment for the primary-source
citations and the design decision this rests on. *)
type rank =
| Sollemnitas
| Festum
| Memoria_obligatoria
| Memoria_ad_libitum
| Feria
[@@deriving sexp]
val seasons : season list
val ranks : rank list
val season_to_string : season -> string
val season_of_string : string -> season option
(** The word used when building a slug: lowercase, hyphenated, e.g.
["ordinary-time"] for [Ordinary_time]. Unlike {!Colitur_kernel.Vocab_ef
.season_slug_word}, this is not adopted from any external lectionary --
OF has no bootstrapped-from-lectio slug legacy to preserve -- so it is
simply {!season_to_string}'s own hyphenated image; kept as a separate
function anyway so a future divergence (a real lectionary source using
different words) does not require renaming every call site. *)
val season_slug_word : season -> string
val rank_to_string : rank -> string
val rank_of_string : string -> rank option
val vocab : (season, rank) Colitur_kernel.Vocab.t
|