blob: 2963366669f00c6a77a4bcbce4198d58b14822d5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
open Sexplib0.Sexp_conv
(* A celebration as computed or as loaded from a layer.
One type parameter, not two: a celebration has no season of its own --
season is contextual to the day, and lives in Temporal.t, which pairs a
celebration with the day it falls on. A phantom 's parameter would compile,
but would carry no information while forcing every consumer (Layer,
Overlay, and later Precedence and Calendar) to thread a variable that
means nothing. *)
type 'r t = {
slug : Slug.t;
names : Names.t;
rank : 'r;
colour : Colour.t;
subject : Subject.t;
citations : Citation.t list;
layer : string; (** provenance: "temporal", a layer id, or an overlay id *)
}
[@@deriving sexp]
let make ~slug ?(names = Names.empty) ~rank ~colour ?(subject = Subject.Temporal)
?(citations = []) ~layer () =
{ slug; names; rank; colour; subject; citations; layer }
|