sig
  module type S =
    sig
      module D : Mdata.S
      val i_neg : Ctypes.c_int -> D.integer -> D.integer
      val i_op :
        Ctypes.c_int ->
        Formula.integer_op -> D.integer -> D.integer -> D.integer
      val i_cmp :
        Ctypes.c_int -> Formula.cmp_op -> D.integer -> D.integer -> D.boolean
      val bits_not : Ctypes.c_int -> D.integer -> D.integer
      val bits_and : Ctypes.c_int -> D.integer -> D.integer -> D.integer
      val bits_or : Ctypes.c_int -> D.integer -> D.integer -> D.integer
      val bits_xor : Ctypes.c_int -> D.integer -> D.integer -> D.integer
      val bits_lshift : Ctypes.c_int -> D.integer -> D.integer -> D.integer
      val bits_rshift : Ctypes.c_int -> D.integer -> D.integer -> D.integer
    end
end