sig
type 'a t
type packed
val pack : 'a Descr.t -> Descr.packed
val abstract : 'a Type.t -> 'a Descr.t
val sum : 'a Type.t -> Descr.packed array array -> 'a Descr.t
val dependent_pair :
'a Type.t -> 'b Descr.t -> ('b -> 'a Descr.t) -> ('b * 'a) Descr.t
val array : 'a Type.t -> Descr.packed -> 'a Descr.t
val transform : 'a Descr.t -> ('a -> 'a) -> 'a Descr.t
val return : 'a Descr.t -> (unit -> 'a) -> 'a Descr.t
val dynamic : 'a Type.t -> (unit -> 'a Descr.t) -> 'a 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 t_record : 'a Type.t -> Descr.packed array -> 'a Descr.t
val t_tuple : 'a Type.t -> Descr.packed array -> 'a Descr.t
val t_couple : 'a Descr.t -> 'b Descr.t -> ('a * 'b) Descr.t
val t_list : 'a Descr.t -> 'a list Descr.t
val t_ref : 'a Descr.t -> 'a Pervasives.ref Descr.t
val t_option : 'a Descr.t -> 'a option Descr.t
val t_hashtbl_unchangedhashs :
'a Descr.t -> 'b Descr.t -> ('a, 'b) Hashtbl.t Descr.t
val t_hashtbl_changedhashs :
(int -> ('a, 'b) Hashtbl.t) ->
(('a, 'b) Hashtbl.t -> 'a -> 'b -> unit) ->
'a Descr.t -> 'b Descr.t -> ('a, 'b) Hashtbl.t Descr.t
end