sig
type hash = int
type 'a t = 'a -> CCHash.hash
val const : CCHash.hash -> 'a CCHash.t
val int : int CCHash.t
val bool : bool CCHash.t
val char : char CCHash.t
val int32 : int32 CCHash.t
val int64 : int64 CCHash.t
val nativeint : nativeint CCHash.t
val slice : string -> int -> int CCHash.t
val string : string CCHash.t
val list : 'a CCHash.t -> 'a list CCHash.t
val array : 'a CCHash.t -> 'a array CCHash.t
val opt : 'a CCHash.t -> 'a option CCHash.t
val pair : 'a CCHash.t -> 'b CCHash.t -> ('a * 'b) CCHash.t
val triple :
'a CCHash.t -> 'b CCHash.t -> 'c CCHash.t -> ('a * 'b * 'c) CCHash.t
val quad :
'a CCHash.t ->
'b CCHash.t -> 'c CCHash.t -> 'd CCHash.t -> ('a * 'b * 'c * 'd) CCHash.t
val if_ : bool -> 'a CCHash.t -> 'a CCHash.t -> 'a CCHash.t
val poly : 'a CCHash.t
val list_comm : 'a CCHash.t -> 'a list CCHash.t
val array_comm : 'a CCHash.t -> 'a array CCHash.t
val combine : 'a CCHash.t -> CCHash.hash -> 'a -> CCHash.hash
val combine2 : CCHash.hash -> CCHash.hash -> CCHash.hash
val combine3 : CCHash.hash -> CCHash.hash -> CCHash.hash -> CCHash.hash
val combine4 :
CCHash.hash -> CCHash.hash -> CCHash.hash -> CCHash.hash -> CCHash.hash
type 'a sequence = ('a -> unit) -> unit
type 'a gen = unit -> 'a option
type 'a klist = unit -> [ `Cons of 'a * 'a CCHash.klist | `Nil ]
val seq : 'a CCHash.t -> 'a CCHash.sequence CCHash.t
val gen : 'a CCHash.t -> 'a CCHash.gen CCHash.t
val klist : 'a CCHash.t -> 'a CCHash.klist CCHash.t
end