sig
  type a = char
  val succ : a -> a
  val pred : a -> a
  val to_enum : int -> a
  val from_enum : a -> int
  val enum_from : a -> a list
  val enum_from_then : a -> a -> a list
  val enum_from_to : a -> a -> a list
  val enum_from_then_to : a -> a -> a -> a list
end