(* 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 ` (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 }