sig
  type recursive
  type single_pack = private Unmarshal.t
  type pack = private
      Nopack
    | Pack of Structural_descr.single_pack
    | Recursive of Structural_descr.recursive
  type t = private
      Unknown
    | Abstract
    | Structure of Structural_descr.structure
    | T_pack of Structural_descr.single_pack
  and structure = private
      Sum of Structural_descr.pack array array
    | Array of Structural_descr.pack
  val pack : Structural_descr.t -> Structural_descr.pack
  val recursive_pack : Structural_descr.recursive -> Structural_descr.pack
  module Recursive :
    sig
      val create : unit -> Structural_descr.recursive
      val update : Structural_descr.recursive -> Structural_descr.t -> unit
    end
  val t_unknown : Structural_descr.t
  val t_abstract : Structural_descr.t
  val t_unit : Structural_descr.t
  val t_int : Structural_descr.t
  val t_string : Structural_descr.t
  val t_float : Structural_descr.t
  val t_bool : Structural_descr.t
  val t_int32 : Structural_descr.t
  val t_int64 : Structural_descr.t
  val t_nativeint : Structural_descr.t
  val t_record : Structural_descr.pack array -> Structural_descr.t
  val t_tuple : Structural_descr.pack array -> Structural_descr.t
  val t_list : Structural_descr.t -> Structural_descr.t
  val t_ref : Structural_descr.t -> Structural_descr.t
  val t_option : Structural_descr.t -> Structural_descr.t
  val t_array : Structural_descr.t -> Structural_descr.t
  val t_queue : Structural_descr.t -> Structural_descr.t
  val t_sum : Structural_descr.pack array array -> Structural_descr.t
  val t_set_unchanged_compares : Structural_descr.t -> Structural_descr.t
  val t_map_unchanged_compares :
    Structural_descr.t -> Structural_descr.t -> Structural_descr.t
  val t_hashtbl_unchanged_hashs :
    Structural_descr.t -> Structural_descr.t -> Structural_descr.t
  val p_abstract : Structural_descr.pack
  val p_unit : Structural_descr.pack
  val p_int : Structural_descr.pack
  val p_string : Structural_descr.pack
  val p_float : Structural_descr.pack
  val p_bool : Structural_descr.pack
  val p_int32 : Structural_descr.pack
  val p_int64 : Structural_descr.pack
  val p_nativeint : Structural_descr.pack
  exception Cannot_pack
  val unsafe_pack : Unmarshal.t -> Structural_descr.pack
  val of_pack : Structural_descr.single_pack -> Structural_descr.t
  val cleanup : Structural_descr.t -> Structural_descr.t
  val are_consistent : Structural_descr.t -> Structural_descr.t -> bool
end