sig
  type t = bool
  external not : bool -> bool = "%boolnot"
  external ( && ) : bool -> bool -> bool = "%sequand"
  external ( || ) : bool -> bool -> bool = "%sequor"
  val zero : bool
  val one : bool
  val neg : bool -> bool
  val succ : '-> bool
  val pred : '-> bool
  val abs : '-> 'a
  val add : bool -> bool -> bool
  val mul : bool -> bool -> bool
  val sub : '-> bool -> bool
  val div : '-> '-> 'c
  val modulo : '-> '-> 'c
  val pow : '-> '-> 'c
  val min_num : bool
  val max_num : bool
  val compare : '-> '-> int
  val of_int : int -> bool
  val to_int : bool -> int
  val of_string : string -> bool
  val to_string : bool -> string
  val of_float : float -> bool
  val to_float : bool -> float
  val ( + ) : BatBool.t -> BatBool.t -> BatBool.t
  val ( - ) : BatBool.t -> BatBool.t -> BatBool.t
  val ( * ) : BatBool.t -> BatBool.t -> BatBool.t
  val ( / ) : BatBool.t -> BatBool.t -> BatBool.t
  val ( ** ) : BatBool.t -> BatBool.t -> BatBool.t
  val ( <> ) : BatBool.t -> BatBool.t -> bool
  val ( >= ) : BatBool.t -> BatBool.t -> bool
  val ( <= ) : BatBool.t -> BatBool.t -> bool
  val ( > ) : BatBool.t -> BatBool.t -> bool
  val ( < ) : BatBool.t -> BatBool.t -> bool
  val ( = ) : BatBool.t -> BatBool.t -> bool
  val operations : BatBool.t BatNumber.numeric
  val print : 'BatInnerIO.output -> BatBool.t -> unit
  val t_printer : BatBool.t BatValue_printer.t
end