diff options
Diffstat (limited to 'lib/rites/rite_of/precedence_of.mli')
| -rw-r--r-- | lib/rites/rite_of/precedence_of.mli | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/rites/rite_of/precedence_of.mli b/lib/rites/rite_of/precedence_of.mli index e81d35e..4822411 100644 --- a/lib/rites/rite_of/precedence_of.mli +++ b/lib/rites/rite_of/precedence_of.mli @@ -85,3 +85,28 @@ val vigil_feast : Vocab_of.rank Precedence.candidate -> Slug.t option (** The four functions assembled for {!Colitur_kernel.Precedence.resolve}. *) val rules : (Vocab_of.season, Vocab_of.rank) Precedence.rules + +(** [transfer_target c origin occupant]: where an impeded solemnity goes. + Normae n. 60 and Normae n. 5 together -- n. 60 defers to n. 5 explicitly + ("servatis iis quae n. 5 statuuntur"), so they are one rule set: + + - the Annunciation falling anywhere in Holy Week goes to Easter + 8, the + Monday after the Second Sunday of Easter (n. 60, a fixed destination); + - any other solemnity falling on a Sunday of Advent, Lent or Easter goes to + the following Monday (n. 5), except on Palm Sunday or Easter Sunday, + which n. 5 excludes and which fall through to the general rule; + - otherwise, the nearest later day free of Tabula entries 1-8 (n. 60). + + Shaped to match {!Colitur_kernel.Rite.t.transfer_target} exactly so a later + phase wires it with no adaptation, and honours both obligations that field + states: the result is strictly later than [origin], and the search carries + its own step bound rather than relying on {!Colitur_kernel.Calendar}'s + round guard, which bounds rounds rather than one call's internal search. + + @raise Failure if no free day is found within 400 days -- a structural + bound, not an appeal to the calendar's own shape. *) +val transfer_target : + Vocab_of.rank Precedence.candidate -> + Date.t -> + (Date.t -> Vocab_of.rank Celebration.t) -> + Date.t |
