sig
  type 'a t
  val t_unit : unit Descr.t
  val t_int : int Descr.t
  val t_string : string Descr.t
  val t_float : float Descr.t
  val t_bool : bool Descr.t
  val t_int32 : int32 Descr.t
  val t_int64 : int64 Descr.t
  val t_nativeint : nativeint Descr.t
  val unmarshable : 'Descr.t
  val is_unmarshable : 'Descr.t -> bool
  val is_abstract : 'Descr.t -> bool
  exception Invalid_descriptor
  val t_record : Structural_descr.pack array -> '-> 'Descr.t
  val t_tuple : Structural_descr.pack array -> '-> 'Descr.t
  val t_pair : 'Descr.t -> 'Descr.t -> ('a * 'b) Descr.t
  val t_list : 'Descr.t -> 'a list Descr.t
  val t_ref : 'Descr.t -> 'Pervasives.ref Descr.t
  val t_option : 'Descr.t -> 'a option Descr.t
  val t_queue : 'Descr.t -> 'Queue.t Descr.t
  val of_type : 'Type.t -> 'Descr.t
  val of_structural : 'Type.t -> Structural_descr.t -> 'Descr.t
  val dependent_pair : 'Descr.t -> ('-> 'Descr.t) -> ('a * 'b) Descr.t
  val transform : 'Descr.t -> ('-> 'a) -> 'Descr.t
  val return : 'Descr.t -> (unit -> 'a) -> 'Descr.t
  val dynamic : (unit -> 'Descr.t) -> 'Descr.t
  val str : 'Descr.t -> Structural_descr.t
  val pack : 'Descr.t -> Structural_descr.pack
  val input_val : Pervasives.in_channel -> 'Descr.t -> 'a
end