let of_string s =
  try Some (of_string_exn s)
  with Bad _ -> None