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