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