aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_of/vocab_of.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_of/vocab_of.mli')
-rw-r--r--lib/rites/rite_of/vocab_of.mli58
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/rites/rite_of/vocab_of.mli b/lib/rites/rite_of/vocab_of.mli
new file mode 100644
index 0000000..dd23cfa
--- /dev/null
+++ b/lib/rites/rite_of/vocab_of.mli
@@ -0,0 +1,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