summaryrefslogtreecommitdiff
path: root/lib/kernel/citation.mli
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-11 11:37:32 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-11 11:37:32 +0200
commit57322e766a0ece579dafcddcfe2572676a98fca8 (patch)
tree0e6ca11d29000b956a2c4bb65e436b0eb9251809 /lib/kernel/citation.mli
parent270be2561ae440cea814566b74712750352e56e4 (diff)
downloadcolitur-57322e766a0ece579dafcddcfe2572676a98fca8.tar.gz
colitur-57322e766a0ece579dafcddcfe2572676a98fca8.zip
kernel: Names, Citation and Date_spec
Names is an open language-keyed assoc kept in canonical order so equal name sets serialise identically. Citation carries references only, never text. Date_spec ships the one form the EF sanctoral needs; 29 February is constructible and resolves to None in common years.
Diffstat (limited to 'lib/kernel/citation.mli')
-rw-r--r--lib/kernel/citation.mli12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/kernel/citation.mli b/lib/kernel/citation.mli
new file mode 100644
index 0000000..74cd639
--- /dev/null
+++ b/lib/kernel/citation.mli
@@ -0,0 +1,12 @@
+(** A scripture *reference* (e.g. ["Jn 3:16"]), never scripture text. *)
+type part = First | Psalm | Second | Gospel | Tract | Alleluia | Sequence
+[@@deriving sexp]
+
+val all_parts : part list
+val part_to_string : part -> string
+val part_of_string : string -> part option
+
+type t = { part : part; reference : string } [@@deriving sexp]
+
+val sexp_of_t : t -> Sexplib0.Sexp.t
+val t_of_sexp : Sexplib0.Sexp.t -> t