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 Int32.t       | `Int64 of 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 : Pervasives.out_channel -> Bi_io.tree -> unit   val output_view :     ?unhash:(Bi_io.hash -> string option) ->     Pervasives.out_channel -> string -> unit   val safety_test : unit -> unit end