open Core;; type t = | Guess | Canonical | Natural | Localized | Orthonormalized | None [@@deriving sexp] ;; let to_string = function | Guess -> "Guess" | Canonical -> "Canonical" | Orthonormalized -> "Orthonormalized" | Natural -> "Natural" | Localized -> "Localized" | None -> "None" ;; let of_string s = match String.lowercase (String.strip s) with | "guess" -> Guess | "canonical" -> Canonical | "natural" -> Natural | "localized" -> Localized | "orthonormalized" -> Orthonormalized | "none" -> None | _ -> (print_endline s ; failwith "MO_label should be one of: Guess | Orthonormalized | Canonical | Natural | Localized | None.") ;;