sig
type t = int
type state
type 'a hash_fun = 'a -> CCHash.state -> CCHash.state
val init : CCHash.state
val finish : CCHash.state -> int
val apply : 'a CCHash.hash_fun -> 'a -> int
val bool_ : bool CCHash.hash_fun
val char_ : char CCHash.hash_fun
val int_ : int CCHash.hash_fun
val string_ : string CCHash.hash_fun
val int32_ : int32 CCHash.hash_fun
val int64_ : int64 CCHash.hash_fun
val nativeint_ : nativeint CCHash.hash_fun
val list_ : 'a CCHash.hash_fun -> 'a list CCHash.hash_fun
val array_ : 'a CCHash.hash_fun -> 'a array CCHash.hash_fun
type 'a sequence = ('a -> unit) -> unit
type 'a gen = unit -> 'a option
type 'a klist = unit -> [ `Cons of 'a * 'a CCHash.klist | `Nil ]
module type HASH =
sig
type state
val int : int -> CCHash.HASH.state -> CCHash.HASH.state
val bool : bool -> CCHash.HASH.state -> CCHash.HASH.state
val char : char -> CCHash.HASH.state -> CCHash.HASH.state
val int32 : int32 -> CCHash.HASH.state -> CCHash.HASH.state
val int64 : int64 -> CCHash.HASH.state -> CCHash.HASH.state
val nativeint : nativeint -> CCHash.HASH.state -> CCHash.HASH.state
val slice :
string -> int -> int -> CCHash.HASH.state -> CCHash.HASH.state
end
module type S =
sig
type state
val int : int -> state -> state
val bool : bool -> state -> state
val char : char -> state -> state
val int32 : int32 -> state -> state
val int64 : int64 -> state -> state
val nativeint : nativeint -> state -> state
val slice : string -> int -> int -> state -> state
type 'a hash_fun = 'a -> CCHash.state -> CCHash.state
val string : string CCHash.S.hash_fun
val list : 'a CCHash.S.hash_fun -> 'a list CCHash.S.hash_fun
val array : 'a CCHash.S.hash_fun -> 'a array CCHash.S.hash_fun
val opt : 'a CCHash.S.hash_fun -> 'a option CCHash.S.hash_fun
val pair :
'a CCHash.S.hash_fun ->
'b CCHash.S.hash_fun -> ('a * 'b) CCHash.S.hash_fun
val triple :
'a CCHash.S.hash_fun ->
'b CCHash.S.hash_fun ->
'c CCHash.S.hash_fun -> ('a * 'b * 'c) CCHash.S.hash_fun
val if_ :
bool ->
'a CCHash.S.hash_fun -> 'a CCHash.S.hash_fun -> 'a CCHash.S.hash_fun
val seq : 'a CCHash.S.hash_fun -> 'a CCHash.sequence CCHash.S.hash_fun
val gen : 'a CCHash.S.hash_fun -> 'a CCHash.gen CCHash.S.hash_fun
val klist : 'a CCHash.S.hash_fun -> 'a CCHash.klist CCHash.S.hash_fun
end
module Make :
functor (H : HASH) ->
sig
type state = H.state
val int : int -> state -> state
val bool : bool -> state -> state
val char : char -> state -> state
val int32 : int32 -> state -> state
val int64 : int64 -> state -> state
val nativeint : nativeint -> state -> state
val slice : string -> int -> int -> state -> state
type 'a hash_fun = 'a -> state -> state
val string : string hash_fun
val list : 'a hash_fun -> 'a list hash_fun
val array : 'a hash_fun -> 'a array hash_fun
val opt : 'a hash_fun -> 'a option hash_fun
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
val triple :
'a hash_fun ->
'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
val seq : 'a hash_fun -> 'a sequence hash_fun
val gen : 'a hash_fun -> 'a gen hash_fun
val klist : 'a hash_fun -> 'a klist hash_fun
end
val int : int -> state -> state
val bool : bool -> state -> state
val char : char -> state -> state
val int32 : int32 -> state -> state
val int64 : int64 -> state -> state
val nativeint : nativeint -> state -> state
val slice : string -> int -> int -> state -> state
val string : string hash_fun
val list : 'a hash_fun -> 'a list hash_fun
val array : 'a hash_fun -> 'a array hash_fun
val opt : 'a CCHash.hash_fun -> 'a option CCHash.hash_fun
val pair :
'a CCHash.hash_fun -> 'b CCHash.hash_fun -> ('a * 'b) CCHash.hash_fun
val triple :
'a CCHash.hash_fun ->
'b CCHash.hash_fun ->
'c CCHash.hash_fun -> ('a * 'b * 'c) CCHash.hash_fun
val if_ :
bool -> 'a CCHash.hash_fun -> 'a CCHash.hash_fun -> 'a CCHash.hash_fun
val seq : 'a CCHash.hash_fun -> 'a CCHash.sequence CCHash.hash_fun
val gen : 'a CCHash.hash_fun -> 'a CCHash.gen CCHash.hash_fun
val klist : 'a CCHash.hash_fun -> 'a CCHash.klist CCHash.hash_fun
end