sig
  type t
  val to_int : BatNumber.Discrete.t -> int
  val succ : BatNumber.Discrete.t -> BatNumber.Discrete.t
  val pred : BatNumber.Discrete.t -> BatNumber.Discrete.t
  val ( -- ) :
    BatNumber.Discrete.t ->
    BatNumber.Discrete.t -> BatNumber.Discrete.t BatEnum.t
  val ( --- ) :
    BatNumber.Discrete.t ->
    BatNumber.Discrete.t -> BatNumber.Discrete.t BatEnum.t
end