aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/celebration.ml
blob: 3f7a5779a6f07d73f37574dc67e20cef65b8815b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open Sexplib0.Sexp_conv

(* A celebration as computed or as loaded from a layer.

   One type parameter, not two: the record has no season field, and OCaml
   rejects a type variable that appears in no field. *)
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 }