summaryrefslogtreecommitdiff
path: root/lib/kernel/citation.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/citation.ml')
-rw-r--r--lib/kernel/citation.ml20
1 files changed, 3 insertions, 17 deletions
diff --git a/lib/kernel/citation.ml b/lib/kernel/citation.ml
index a819040..4485958 100644
--- a/lib/kernel/citation.ml
+++ b/lib/kernel/citation.ml
@@ -1,3 +1,5 @@
+open Sexplib0.Sexp_conv
+
(* Scripture references only -- never scripture text (spec ยง1: that is lectio's
job). *)
type part = First | Psalm | Second | Gospel | Tract | Alleluia | Sequence
@@ -14,20 +16,4 @@ let part_of_string = function
| "gospel" -> Some Gospel | "tract" -> Some Tract | "alleluia" -> Some Alleluia
| "sequence" -> Some Sequence | _ -> None
-type t = { part : part; reference : string }
-
-let sexp_of_t { part; reference } =
- Sexplib0.Sexp.List [
- Sexplib0.Sexp_conv.sexp_of_string "part";
- sexp_of_part part;
- Sexplib0.Sexp_conv.sexp_of_string "reference";
- Sexplib0.Sexp_conv.sexp_of_string reference
- ]
-
-let t_of_sexp sexp =
- match sexp with
- | Sexplib0.Sexp.List [ _; part_sexp; _; ref_sexp ] ->
- let part = part_of_sexp part_sexp in
- let reference = Sexplib0.Sexp_conv.string_of_sexp ref_sexp in
- { part; reference }
- | _ -> Sexplib0.Sexp_conv.of_sexp_error "Citation.t_of_sexp: expected record format" sexp
+type t = { part : part; reference : string } [@@deriving sexp]