aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/vocab.mli
blob: 78729bbc18d5ce294a7222bee33118f9bbf0bf1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(* A rite's season and rank vocabulary, as a record of operations. Carries
   functions, so it has no sexp form.

   The kernel is parameterised by type variables plus this record rather than by
   functors (spec §2.3): the safety that matters -- EF code cannot name an OF
   season -- is the same either way, and ppx_sexp_conv derives converters for
   parametric types natively. *)
type ('s, 'r) t = {
  seasons : 's list;
      (** canonical liturgical-year order; Validate's contiguity check reads this *)
  season_to_string : 's -> string;
  season_of_string : string -> 's option;
  ranks : 'r list;
      (** documentation order, highest first. Plan 2 uses it only for the
          closure check -- it is not a precedence relation until Plan 3
          defines one. *)
  rank_to_string : 'r -> string;
  rank_of_string : string -> 'r option;
}