sig
  type sptr
  type eptr
  type sptr_ptr
  external get_sptr : Common.buf -> pos:Common.pos -> Unsafe_common.sptr
    = "get_buf_ptr_stub" "noalloc"
  external get_eptr : Common.buf -> pos:Common.pos -> Unsafe_common.eptr
    = "get_buf_ptr_stub" "noalloc"
  external shift_sptr : Unsafe_common.sptr -> int -> Unsafe_common.sptr
    = "shift_sptr_stub" "noalloc"
  external get_eptr_from_sptr_ptr :
    Unsafe_common.sptr_ptr -> pos:Common.pos -> Unsafe_common.eptr
    = "get_eptr_from_sptr_ptr" "noalloc"
  external get_buf_pos :
    start:Unsafe_common.sptr -> cur:Unsafe_common.sptr -> Common.pos
    = "get_buf_pos_stub" "noalloc"
  external get_safe_buf_pos :
    Common.buf ->
    start:Unsafe_common.sptr -> cur:Unsafe_common.sptr -> Common.pos
    = "get_safe_buf_pos_stub" "noalloc"
  external alloc_sptr_ptr :
    Common.buf -> pos:Common.pos -> Unsafe_common.sptr_ptr
    = "alloc_sptr_ptr_stub" "noalloc"
  external dealloc_sptr_ptr :
    Common.buf -> Unsafe_common.sptr_ptr -> Common.pos
    = "dealloc_sptr_ptr_stub" "noalloc"
  external get_sptr_ptr : Unsafe_common.sptr_ptr -> Common.buf -> Common.pos
    = "get_sptr_ptr_stub" "noalloc"
  external set_sptr_ptr :
    Unsafe_common.sptr_ptr -> Common.buf -> pos:Common.pos -> unit
    = "set_sptr_ptr_stub" "noalloc"
  external get_sptr_ptr_sptr : Unsafe_common.sptr_ptr -> Unsafe_common.sptr
    = "get_sptr_ptr_sptr_stub" "noalloc"
  external set_sptr_ptr_sptr :
    Unsafe_common.sptr_ptr -> Unsafe_common.sptr -> unit
    = "set_sptr_ptr_sptr_stub" "noalloc"
  external get_ptr_string :
    Unsafe_common.sptr -> Unsafe_common.eptr -> string
    = "get_ptr_string_stub"
  val get_read_init :
    Common.buf ->
    pos_ref:Common.pos Pervasives.ref ->
    Unsafe_common.sptr_ptr * Unsafe_common.eptr
end