aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef/rite_ef.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_ef/rite_ef.ml')
-rw-r--r--lib/rites/rite_ef/rite_ef.ml29
1 files changed, 18 insertions, 11 deletions
diff --git a/lib/rites/rite_ef/rite_ef.ml b/lib/rites/rite_ef/rite_ef.ml
index ded960b..60065b7 100644
--- a/lib/rites/rite_ef/rite_ef.ml
+++ b/lib/rites/rite_ef/rite_ef.ml
@@ -11,16 +11,23 @@ module Lectionary_ef = Lectionary_ef
open Colitur_kernel
-(* [~lectionary], not a value closed over an internal load: fix round 1
- (coordinator review) found the previous version -- [context] as a plain
- value, [Lectionary_ef] loading data/ef/lectionary.sexp as a side effect
- of being linked -- made `colitur easter <year>` (no lectionary data
- touched at all) die at startup the moment that file was absent from a
- bare `dune build`'s own default target. A function mirrors how the
- sanctoral [Layer.t] already travels: caller-supplied, not embedded (see
- this module's own .mli doc comment on [context] for the fuller
- rationale, shared with data/ef/sanctoral.sexp). *)
-let context ~lectionary : (Vocab_ef.season, Vocab_ef.rank) Rite.t =
+(* [~lectionary] and [~commons], not values closed over an internal load:
+ fix round 1 (coordinator review) found the previous version -- [context]
+ as a plain value, [Lectionary_ef] loading data/ef/lectionary.sexp as a
+ side effect of being linked -- made `colitur easter <year>` (no
+ lectionary data touched at all) die at startup the moment that file was
+ absent from a bare `dune build`'s own default target. A function mirrors
+ how the sanctoral [Layer.t] already travels: caller-supplied, not
+ embedded (see this module's own .mli doc comment on [context] for the
+ fuller rationale, shared with data/ef/sanctoral.sexp).
+
+ [~commons] is REQUIRED, not optional-with-a-default: an omitted
+ [?commons] would silently give a caller [Commons.empty], i.e. a rite
+ whose class-3 saints quietly lose their Mass, and nothing in the suite
+ compares citations across layers 3-5, so that loss would be invisible.
+ A caller that genuinely has no Commons data passes
+ [Lectionary_ef.Commons.empty] and says so. *)
+let context ~lectionary ~commons : (Vocab_ef.season, Vocab_ef.rank) Rite.t =
{ Rite.id = Temporal_ef.id;
vocab = Vocab_ef.vocab;
year_start = Temporal_ef.year_start;
@@ -32,4 +39,4 @@ let context ~lectionary : (Vocab_ef.season, Vocab_ef.rank) Rite.t =
admit = Precedence_ef.admit };
season_runs = Vocab_ef.seasons;
transfer_target = Precedence_ef.transfer_target;
- readings = Lectionary_ef.readings ~lectionary }
+ readings = Lectionary_ef.readings ~lectionary ~commons }