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