summaryrefslogtreecommitdiff
path: root/lib/kernel/rite.ml
blob: 600a6917808752f84e599422451d0b8878007565 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(* Everything a rite supplies, bundled. Passing these as loose arguments let a
   caller pair one rite's vocab with another's temporal; bundling makes that
   unrepresentable through the normal path. *)
type ('s, 'r) t = {
  id : string;
  vocab : ('s, 'r) Vocab.t;
  year_start : int -> Date.t;
  temporal : Date.t -> ('s, 'r) Temporal.t;
  anchors : int -> (string * Date.t) list;
  easter : int -> Date.t;
  rules : ('s, 'r) Precedence.rules;
  season_runs : 's list;
  transfer_target :
    'r Precedence.candidate -> Date.t -> (Date.t -> 'r Celebration.t) -> Date.t;
  readings :
    observed:'r Celebration.t ->
    temporal:('s, 'r) Temporal.t ->
    date:Date.t ->
    temporal_at:(Date.t -> ('s, 'r) Temporal.t) ->
    Citation.t list;
}