sig
  type 'a int_t
  val int_t : int -> 'Opaque.int_t
  val t_int : 'Opaque.int_t -> int
  val any_int : 'Opaque.int_t -> 'Opaque.int_t
  val add : 'Opaque.int_t -> 'Opaque.int_t -> 'Opaque.int_t
  val sub : 'Opaque.int_t -> 'Opaque.int_t -> 'Opaque.int_t
  val mul : 'Opaque.int_t -> 'Opaque.int_t -> 'Opaque.int_t
  val div : 'Opaque.int_t -> 'Opaque.int_t -> 'Opaque.int_t
  val neg : 'Opaque.int_t -> 'Opaque.int_t
  val successor : 'Opaque.int_t -> 'Opaque.int_t
  val predecessor : 'Opaque.int_t -> 'Opaque.int_t
  val increment : 'Opaque.int_t Pervasives.ref -> unit
  val print_int_t : 'Opaque.int_t -> unit
  type 'a string_t
  val string_t : string -> 'Opaque.string_t
  val t_string : 'Opaque.string_t -> string
  val any_string : 'Opaque.string_t -> 'Opaque.string_t
  val concat : 'Opaque.string_t -> 'Opaque.string_t -> 'Opaque.string_t
  val concat_list : string -> 'Opaque.string_t list -> 'Opaque.string_t
  val print_string_t : 'Opaque.string_t -> unit
end