blob: ded960bff6f76c66a8178fec8998869a46e600ac (
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
|
(* This module's name matches the library's own name ("rite_ef"), so dune
treats it as the library's top-level module instead of generating one
automatically -- every sibling module this library defines must be
re-exported here explicitly, or external references to e.g.
[Rite_ef.Temporal_ef] (bin/main.ml, every test/ file that opens this
rite) stop resolving. *)
module Vocab_ef = Vocab_ef
module Temporal_ef = Temporal_ef
module Precedence_ef = Precedence_ef
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 =
{ Rite.id = Temporal_ef.id;
vocab = Vocab_ef.vocab;
year_start = Temporal_ef.year_start;
temporal = Temporal_ef.temporal;
anchors = Temporal_ef.anchors;
rules =
{ Precedence.band = Precedence_ef.band;
disposition = Precedence_ef.disposition;
admit = Precedence_ef.admit };
season_runs = Vocab_ef.seasons;
transfer_target = Precedence_ef.transfer_target;
readings = Lectionary_ef.readings ~lectionary }
|