sig
  type base_t
  type t
  val bounds : base_t bound_t * base_t bound_t
  val bounded : (base_t, t) bounding_f
  val base_of_t : t -> base_t option
  val base_of_t_exn : t -> base_t
  module Infix :
    sig
      val ( + ) : base_t -> base_t -> base_t
      val ( - ) : base_t -> base_t -> base_t
      val ( * ) : base_t -> base_t -> base_t
      val ( / ) : base_t -> base_t -> base_t
      val ( ** ) : base_t -> base_t -> base_t
      val ( -- ) : base_t -> base_t -> base_t BatEnum.t
      val ( --- ) : base_t -> base_t -> base_t BatEnum.t
    end
end