sig
  exception Error of string
  type t = int
  val of_ascii : char -> t
  val to_ascii : t -> char
  val of_probability : ?f:(float -> int) -> float -> t
  val to_probability : t -> float
end