sig
  type t = string
  val string : string -> t
  val substring : string -> int -> int -> t
  external channel : in_channel -> int -> t = "caml_md5_chan"
  val file : string -> t
  val output : out_channel -> t -> unit
  val input : in_channel -> t
  val to_hex : t -> string
  val digest_cache : (string, t) Hashtbl.t
  val reset_digest_cache : unit -> unit
  val reset_digest_cache_for : string -> unit
  val file : string -> t
end