let of_roman s =
  try Ok (arabic (String.uppercase s))
  with BadNumeral c -> error "invalid char in Roman numeral" c sexp_of_char