aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/subject.ml
blob: 000aaff3378e14feab34c7e6a22585ee256454fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
(* Whom the celebration is of. Named [Subject] rather than [Class] because
   [class] is an OCaml keyword. Used by precedence in Plan 3 (RG 91). *)
type t = Temporal | Saint | Bvm | Lord [@@deriving sexp]

let all = [ Temporal; Saint; Bvm; Lord ]

let to_string = function
  | Temporal -> "temporal" | Saint -> "saint" | Bvm -> "bvm" | Lord -> "lord"

let of_string = function
  | "temporal" -> Some Temporal | "saint" -> Some Saint
  | "bvm" -> Some Bvm | "lord" -> Some Lord
  | _ -> None