summaryrefslogtreecommitdiff
path: root/lib/rites/rite_of/vocab_of.mli
blob: dd23cfa9b1e1d45fec3192cafe4a3ba534fe52a4 (plain) (blame)
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