sig
  type 'a optaddr
  val optaddr : 'a option -> 'Gpointer.optaddr
  type optstring
  val raw_null : Gpointer.optstring
  val optstring : string option -> Gpointer.optstring
  type boxed
  val boxed_null : Gpointer.boxed
  val peek_string : ?pos:int -> ?len:int -> Gpointer.boxed -> string
  val peek_int : Gpointer.boxed -> int
  val poke_int : Gpointer.boxed -> int -> unit
  val peek_nativeint : Gpointer.boxed -> nativeint
  val poke_nativeint : Gpointer.boxed -> nativeint -> unit
  type 'a optboxed
  val optboxed : 'a option -> 'Gpointer.optboxed
  val may_box : f:('-> 'b) -> 'a option -> 'Gpointer.optboxed
  type 'a variant_table constraint 'a = [>  ]
  val decode_variant : ([>  ] as 'a) Gpointer.variant_table -> int -> 'a
  val encode_variant : ([>  ] as 'a) Gpointer.variant_table -> '-> int
  val decode_flags : ([>  ] as 'a) Gpointer.variant_table -> int -> 'a list
  val encode_flags : ([>  ] as 'a) Gpointer.variant_table -> 'a list -> int
  exception Null
  type 'a stable
  val stable_copy : '-> 'Gpointer.stable
  type region
  val length : Gpointer.region -> int
  val get_addr : Gpointer.region -> nativeint
  val sub : ?pos:int -> ?len:int -> Gpointer.region -> Gpointer.region
  val get_byte : Gpointer.region -> pos:int -> int
  val set_byte : Gpointer.region -> pos:int -> int -> unit
  val blit : src:Gpointer.region -> dst:Gpointer.region -> unit
  val region_of_string : string -> Gpointer.region
  val string_of_region : Gpointer.region -> string
  type 'a bigarray = (int, Bigarray.int8_unsigned_elt, 'a) Bigarray.Array1.t
  val region_of_bigarray : 'Gpointer.bigarray -> Gpointer.region
  val unsafe_create_region :
    path:int array -> get_length:('-> int) -> '-> Gpointer.region
  external unsafe_get_byte : Gpointer.region -> pos:int -> int
    = "ml_gpointer_get_char"
  external unsafe_set_byte : Gpointer.region -> pos:int -> int -> unit
    = "ml_gpointer_set_char"
end