`sig
type node_tag = int
val bool_tag : Bi_io.node_tag
val int8_tag : Bi_io.node_tag
val int16_tag : Bi_io.node_tag
val int32_tag : Bi_io.node_tag
val int64_tag : Bi_io.node_tag
val float32_tag : Bi_io.node_tag
val float64_tag : Bi_io.node_tag
val uvint_tag : Bi_io.node_tag
val svint_tag : Bi_io.node_tag
val string_tag : Bi_io.node_tag
val array_tag : Bi_io.node_tag
val tuple_tag : Bi_io.node_tag
val record_tag : Bi_io.node_tag
val num_variant_tag : Bi_io.node_tag
val variant_tag : Bi_io.node_tag
val unit_tag : Bi_io.node_tag
val table_tag : Bi_io.node_tag
val shared_tag : Bi_io.node_tag
val write_tag : Bi_outbuf.t -> Bi_io.node_tag -> unit
val read_tag : Bi_inbuf.t -> Bi_io.node_tag
type hash = int
val hash_name : string -> Bi_io.hash
val write_hashtag : Bi_outbuf.t -> Bi_io.hash -> bool -> unit
val string_of_hashtag : Bi_io.hash -> bool -> string
val read_hashtag :
Bi_inbuf.t -> (Bi_inbuf.t -> Bi_io.hash -> bool -> 'a) -> 'a
val read_field_hashtag : Bi_inbuf.t -> Bi_io.hash
val make_unhash : string list -> Bi_io.hash -> string option
type int7 = int
val write_numtag : Bi_outbuf.t -> Bi_io.int7 -> bool -> unit
val read_numtag :
Bi_inbuf.t -> (Bi_inbuf.t -> Bi_io.int7 -> bool -> 'a) -> 'a
val write_untagged_unit : Bi_outbuf.t -> unit -> unit
val write_untagged_bool : Bi_outbuf.t -> bool -> unit
val write_untagged_char : Bi_outbuf.t -> char -> unit
val write_untagged_int8 : Bi_outbuf.t -> int -> unit
val write_untagged_int16 : Bi_outbuf.t -> int -> unit
val write_untagged_int32 : Bi_outbuf.t -> int32 -> unit
val write_untagged_int64 : Bi_outbuf.t -> int64 -> unit
val write_untagged_float32 : Bi_outbuf.t -> float -> unit
val write_untagged_float64 : Bi_outbuf.t -> float -> unit
val write_untagged_string : Bi_outbuf.t -> string -> unit
val write_untagged_uvint : Bi_outbuf.t -> int -> unit
val write_untagged_svint : Bi_outbuf.t -> int -> unit
val write_unit : Bi_outbuf.t -> unit -> unit
val write_bool : Bi_outbuf.t -> bool -> unit
val write_char : Bi_outbuf.t -> char -> unit
val write_int8 : Bi_outbuf.t -> int -> unit
val write_int16 : Bi_outbuf.t -> int -> unit
val write_int32 : Bi_outbuf.t -> int32 -> unit
val write_int64 : Bi_outbuf.t -> int64 -> unit
val write_float32 : Bi_outbuf.t -> float -> unit
val write_float64 : Bi_outbuf.t -> float -> unit
val write_string : Bi_outbuf.t -> string -> unit
val write_uvint : Bi_outbuf.t -> int -> unit
val write_svint : Bi_outbuf.t -> int -> unit
val read_untagged_unit : Bi_inbuf.t -> unit
val read_untagged_bool : Bi_inbuf.t -> bool
val read_untagged_char : Bi_inbuf.t -> char
val read_untagged_int8 : Bi_inbuf.t -> int
val read_untagged_int16 : Bi_inbuf.t -> int
val read_untagged_int32 : Bi_inbuf.t -> int32
val read_untagged_int64 : Bi_inbuf.t -> int64
val read_untagged_float32 : Bi_inbuf.t -> float
val read_untagged_float64 : Bi_inbuf.t -> float
val read_untagged_string : Bi_inbuf.t -> string
val read_untagged_uvint : Bi_inbuf.t -> int
val read_untagged_svint : Bi_inbuf.t -> int
val skip : Bi_inbuf.t -> unit
type tree =
[ `Array of (Bi_io.node_tag * Bi_io.tree array) option
| `Bool of bool
| `Float32 of float
| `Float64 of float
| `Int16 of int
| `Int32 of Stdlib.Int32.t
| `Int64 of Stdlib.Int64.t
| `Int8 of char
| `Num_variant of int * Bi_io.tree option
| `Record of (string option * Bi_io.hash * Bi_io.tree) array
| `Shared of Bi_io.tree
| `String of string
| `Svint of int
| `Table of
((string option * Bi_io.hash * Bi_io.node_tag) array *
Bi_io.tree array array)
option
| `Tuple of Bi_io.tree array
| `Unit
| `Uvint of int
| `Variant of string option * Bi_io.hash * Bi_io.tree option ]
val write_tree : Bi_outbuf.t -> Bi_io.tree -> unit
val string_of_tree : Bi_io.tree -> string
val read_tree :
?unhash:(Bi_io.hash -> string option) -> Bi_inbuf.t -> Bi_io.tree
val tree_of_string :
?unhash:(Bi_io.hash -> string option) -> string -> Bi_io.tree
val tag_of_tree : Bi_io.tree -> Bi_io.node_tag
val view_of_tree : Bi_io.tree -> string
val view : ?unhash:(Bi_io.hash -> string option) -> string -> string
val print_view_of_tree : Bi_io.tree -> unit
val print_view : ?unhash:(Bi_io.hash -> string option) -> string -> unit
val output_view_of_tree : Stdlib.out_channel -> Bi_io.tree -> unit
val output_view :
?unhash:(Bi_io.hash -> string option) ->
Stdlib.out_channel -> string -> unit
val safety_test : unit -> unit
end`