`sig
type t = string
val compare : Digest.t -> Digest.t -> int
val equal : Digest.t -> Digest.t -> bool
val string : string -> Digest.t
val bytes : bytes -> Digest.t
val substring : string -> int -> int -> Digest.t
val subbytes : bytes -> int -> int -> Digest.t
val channel : Stdlib.in_channel -> int -> Digest.t
val file : string -> Digest.t
val output : Stdlib.out_channel -> Digest.t -> unit
val input : Stdlib.in_channel -> Digest.t
val to_hex : Digest.t -> string
val of_hex : string -> Digest.t
val from_hex : string -> Digest.t
module type S =
sig
type t = string
val hash_length : int
val compare : Digest.S.t -> Digest.S.t -> int
val equal : Digest.S.t -> Digest.S.t -> bool
val string : string -> Digest.S.t
val bytes : bytes -> Digest.S.t
val substring : string -> int -> int -> Digest.S.t
val subbytes : bytes -> int -> int -> Digest.S.t
val channel : Stdlib.in_channel -> int -> Digest.S.t
val file : string -> Digest.S.t
val output : Stdlib.out_channel -> Digest.S.t -> unit
val input : Stdlib.in_channel -> Digest.S.t
val to_hex : Digest.S.t -> string
val of_hex : string -> Digest.S.t
end
module BLAKE128 : S
module BLAKE256 : S
module BLAKE512 : S
module MD5 : S
end`