sig
  type t =
      Abstract
    | Structure of Unmarshal.structure
    | Transform of Unmarshal.t * (Obj.t -> Obj.t)
    | Return of Unmarshal.t * (unit -> Obj.t)
    | Dynamic of (unit -> Unmarshal.t)
  and structure = Sum of Unmarshal.t array array | Array of Unmarshal.t
  val input_val : Pervasives.in_channel -> Unmarshal.t -> 'a
  val null : Obj.t
  val id : Obj.t -> Obj.t
  val t_int : Unmarshal.t
  val t_string : Unmarshal.t
  val t_float : Unmarshal.t
  val t_bool : Unmarshal.t
  val t_int32 : Unmarshal.t
  val t_int64 : Unmarshal.t
  val t_nativeint : Unmarshal.t
  val t_record : Unmarshal.t array -> Unmarshal.t
  val t_tuple : Unmarshal.t array -> Unmarshal.t
  val t_list : Unmarshal.t -> Unmarshal.t
  val t_ref : Unmarshal.t -> Unmarshal.t
  val t_option : Unmarshal.t -> Unmarshal.t
  val register_custom : string -> (Pervasives.in_channel -> Obj.t) -> unit
  val arch_sixtyfour : bool
  val arch_bigendian : bool
  val getword : Pervasives.in_channel -> Int32.t
  val read8s : Pervasives.in_channel -> int
  val read16s : Pervasives.in_channel -> int
  val read32s : Pervasives.in_channel -> int
  val read64s : Pervasives.in_channel -> int
  val read8u : Pervasives.in_channel -> int
  val read16u : Pervasives.in_channel -> int
  val read32u : Pervasives.in_channel -> int
  val read64u : Pervasives.in_channel -> int
  val readblock : Pervasives.in_channel -> Obj.t -> int -> int -> unit
  val readblock_rev : Pervasives.in_channel -> Obj.t -> int -> int -> unit
end