struct
  type t = int
  let compare (a: int) (b: int) = compare a b
  let to_string i = string_of_int i
  let of_string s = try Some (int_of_string s) with _ -> None

end