sig
  type t = { signed : bool; reg : Bdd.t array; }
  exception Typing of string
  val extend : Manager.t -> int -> Bddint.t -> Bddint.t
  val neg : Bddint.t -> Bddint.t
  val succ : Bddint.t -> Bddint.t
  val pred : Bddint.t -> Bddint.t
  val add : Bddint.t -> Bddint.t -> Bddint.t
  val sub : Bddint.t -> Bddint.t -> Bddint.t
  val shift_left : int -> Bddint.t -> Bddint.t
  val shift_right : int -> Bddint.t -> Bddint.t
  val scale : int -> Bddint.t -> Bddint.t
  val ite : Bdd.t -> Bddint.t -> Bddint.t -> Bddint.t
  val is_cst : Bddint.t -> bool
  val zero : Manager.t -> Bddint.t -> Bdd.t
  val equal : Manager.t -> Bddint.t -> Bddint.t -> Bdd.t
  val greatereq : Manager.t -> Bddint.t -> Bddint.t -> Bdd.t
  val greater : Manager.t -> Bddint.t -> Bddint.t -> Bdd.t
  val of_int : Manager.t -> bool -> int -> int -> Bddint.t
  val to_int : Bddint.t -> int
  val equal_int : Manager.t -> Bddint.t -> int -> Bdd.t
  val greatereq_int : Manager.t -> Bddint.t -> int -> Bdd.t
  module Minterm :
    sig
      val iter : signed:bool -> (int -> unit) -> Bddreg.Minterm.t -> unit
      val map : signed:bool -> (int -> 'a) -> Bddreg.Minterm.t -> 'a list
    end
  val guard_of_int : Manager.t -> Bddint.t -> int -> Bdd.t
  val guardints : Manager.t -> Bddint.t -> (Bdd.t * int) list
  val print : (int -> string) -> Format.formatter -> Bddint.t -> unit
  val print_minterm :
    (Format.formatter -> Bdd.t -> unit) ->
    Format.formatter -> Bddint.t -> unit
end