summaryrefslogtreecommitdiff
path: root/lib/kernel/names.mli
blob: 567ce2eec5acea413849c683405b8283abb71a71 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(** Celebration names keyed by language. The language set is open; entries are
    kept sorted by language code, so equal name sets have equal sexp forms. *)
type t = (Lang.t * string) list [@@deriving sexp]

val sexp_of_t : t -> Sexplib0.Sexp.t
val t_of_sexp : Sexplib0.Sexp.t -> t

val empty : t

(** Canonicalises; on duplicate languages the last entry wins. *)
val of_list : (Lang.t * string) list -> t

val set : t -> Lang.t -> string -> t
val remove : t -> Lang.t -> t
val find : t -> Lang.t -> string option

(** [find_first t langs] returns the name for the first language present. *)
val find_first : t -> Lang.t list -> string option

val to_list : t -> (Lang.t * string) list