`sig
type ctx
type buf =
(int, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t
type t
val zero : Sha512.t
external init : unit -> Sha512.ctx = "stub_sha512_init"
external unsafe_update_substring :
Sha512.ctx -> string -> int -> int -> unit = "stub_sha512_update"
val update_substring : Sha512.ctx -> string -> int -> int -> unit
val update_string : Sha512.ctx -> string -> unit
external update_buffer : Sha512.ctx -> Sha512.buf -> unit
= "stub_sha512_update_bigarray"
external finalize : Sha512.ctx -> Sha512.t = "stub_sha512_finalize"
external copy : Sha512.ctx -> Sha512.ctx = "stub_sha512_copy"
val string : string -> Sha512.t
val substring : string -> int -> int -> Sha512.t
val buffer : Sha512.buf -> Sha512.t
val channel : Stdlib.in_channel -> int -> Sha512.t
val file : string -> Sha512.t
val file_fast : string -> Sha512.t
val output : Stdlib.out_channel -> Sha512.t -> unit
val input : Stdlib.in_channel -> Sha512.t
val to_bin : Sha512.t -> string
val to_hex : Sha512.t -> string
val equal : Sha512.t -> Sha512.t -> bool
val of_bin : bytes -> Sha512.t
val of_hex : string -> Sha512.t
end`