aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef/precedence_ef.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_ef/precedence_ef.mli')
-rw-r--r--lib/rites/rite_ef/precedence_ef.mli58
1 files changed, 37 insertions, 21 deletions
diff --git a/lib/rites/rite_ef/precedence_ef.mli b/lib/rites/rite_ef/precedence_ef.mli
index ee7667d..49195f9 100644
--- a/lib/rites/rite_ef/precedence_ef.mli
+++ b/lib/rites/rite_ef/precedence_ef.mli
@@ -166,33 +166,49 @@ val september_ember_prefix : string
(** [admit ~observed ~temporal comms]: RG 108-111 (docs/research/rules-register.md
§4, "Commemorations"). How many of [comms] -- each already tagged with
- its real RG 109 privilege by {!disposition} -- RG 111 admits, and which,
- given the day actually observed:
+ its real RG 109 privilege by {!disposition}, and its own {!band} value
+ (RG 91's table-of-precedence entry, computed once by
+ {!Precedence.resolve} -- see {!Precedence.rules.admit}'s own doc) -- RG
+ 111 admits, and which, given the day actually observed:
- [observed] a [Class1] day: none, except at most one privileged
- commemoration (the highest-dignity one, if several are due) -- an
- ordinary one is never admitted here, no matter how many are due;
+ commemoration (the highest-{!band}-precedence one, if several are
+ due) -- an ordinary one is never admitted here, no matter how many
+ are due;
- the CIVIL DAY is a [Class2] Sunday ([temporal]'s slug carries
{!sunday_marker} -- CORRECTED, fix round 1, RG16(a) task: read off
[temporal], not [observed]; see below): one, subject to TWO
conditions, not one -- (i) a privileged commemoration, whenever due,
categorically takes the day's one slot over any ordinary one, not by
- comparing dignity, so an ordinary commemoration that would otherwise
- win on dignity is still dropped; (ii) failing that, the slot is
- reserved for a [Class2] candidate SPECIFICALLY ("de festo II classis",
- RG 111(b)'s own wording -- a RANK FLOOR, not "whichever ordinary
- candidate has the best dignity"): a III- or IV-class ordinary loser
- has no standing for this slot at all and is admitted nothing, even
- when it is the only candidate due;
- - the civil day is any other [Class2] day: one, by dignity alone -- no
- privilege override and no rank floor, unlike the Sunday case
- immediately above;
- - [observed] a [Class3] or [Class4] day: at most two, by dignity alone.
+ comparing table position, so an ordinary commemoration that would
+ otherwise win on table order is still dropped; (ii) failing that, the
+ slot is reserved for a [Class2] candidate SPECIFICALLY ("de festo II
+ classis", RG 111(b)'s own wording -- a RANK FLOOR, not "whichever
+ ordinary candidate has the best table position"): a III- or IV-class
+ ordinary loser has no standing for this slot at all and is admitted
+ nothing, even when it is the only candidate due;
+ - the civil day is any other [Class2] day: one, by {!band}'s table order
+ alone -- no privilege override and no rank floor, unlike the Sunday
+ case immediately above;
+ - [observed] a [Class3] or [Class4] day: at most two, by {!band}'s table
+ order alone.
- "Dignity" here is [Vocab_ef.rank] (RG 8's four classes), NOT {!band}'s
- finer RG 91 entry number -- {!band} needs a [context] (date/season/
- weekday) this function does not receive (see {!Precedence.rules.admit}).
- Ties break on slug, matching {!Precedence.compare_by}, so the result
- never depends on the order [comms] arrives in.
+ CORRECTED, Task B (branch ef-rg16a): this used to sort by
+ [Vocab_ef.rank] (RG 8's coarse four-class "dignity") and break same-rank
+ ties alphabetically by slug -- an engineering convention with no
+ rubrical warrant, cited nowhere, silently deciding 66 days over
+ 2005-2050. RG 113's own second sentence, previously uncited
+ (docs/research/rules-register.md §4's RG 113 entry), is the real rule:
+ *"in admittendis et ordinandis aliis commemorationibus, servetur ordo
+ tabellae praecedentiae"* -- admitting and ordering commemorations both
+ run on {!band}'s own finer RG 91 table, not RG 8's four classes.
+ {!band} needs a [context] (date/season/weekday) this function does not
+ receive on its own, so {!Precedence.resolve} computes it once,
+ generically, and hands each candidate its own value as the trailing
+ [int] on [comms]'s triples (see {!Precedence.rules.admit}). Ties break
+ on slug ONLY within one identical [band] value (RG 113 gives no further
+ instruction there; still an uncited engineering convention, register §6
+ "RG 113 tie-break"), matching {!Precedence.compare_by}'s own fallback,
+ so the result never depends on the order [comms] arrives in.
[temporal] -- CORRECTED, fix round 1 (RG16(a) task): this function used
to read the Sunday/non-Sunday split off [observed]'s own slug, which
@@ -219,7 +235,7 @@ val september_ember_prefix : string
val admit :
observed:Vocab_ef.rank Precedence.candidate ->
temporal:Vocab_ef.rank Precedence.candidate ->
- (Vocab_ef.rank Precedence.candidate * Precedence.privilege) list ->
+ (Vocab_ef.rank Precedence.candidate * Precedence.privilege * int) list ->
(Vocab_ef.rank Precedence.candidate * Precedence.privilege) list
(** The Annunciation's own bootstrapped slug (data/ef/sanctoral.sexp, Task