summaryrefslogtreecommitdiff
path: root/lib/kernel/names.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/names.mli')
-rw-r--r--lib/kernel/names.mli20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/kernel/names.mli b/lib/kernel/names.mli
new file mode 100644
index 0000000..567ce2e
--- /dev/null
+++ b/lib/kernel/names.mli
@@ -0,0 +1,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