include S with type kind = [ `BLAKE2S ]
val kind : kind
val empty : ctx
val init : unit -> ctx
val feed_bytes : ctx -> ?off:int -> ?len:int -> Stdlib.Bytes.t -> ctx
val feed_string : ctx -> ?off:int -> ?len:int -> Stdlib.String.t -> ctx
val feedi_bytes : ctx -> Stdlib.Bytes.t iter -> ctx
val feedi_string : ctx -> Stdlib.String.t iter -> ctx
val digest_bytes : ?off:int -> ?len:int -> Stdlib.Bytes.t -> t
val digest_string : ?off:int -> ?len:int -> Stdlib.String.t -> t
val digesti_bytes : Stdlib.Bytes.t iter -> t
val digesti_string : Stdlib.String.t iter -> t
val digestv_bytes : Stdlib.Bytes.t list -> t
val digestv_string : Stdlib.String.t list -> t
val hmac_bytes : key:Stdlib.Bytes.t -> ?off:int -> ?len:int -> Stdlib.Bytes.t -> t
val hmac_string : key:Stdlib.String.t -> ?off:int -> ?len:int -> Stdlib.String.t -> t
val hmaci_bytes : key:Stdlib.Bytes.t -> Stdlib.Bytes.t iter -> t
val hmaci_string : key:Stdlib.String.t -> Stdlib.String.t iter -> t
val hmacv_bytes : key:Stdlib.Bytes.t -> Stdlib.Bytes.t list -> t
val hmacv_string : key:Stdlib.String.t -> Stdlib.String.t list -> t
val of_hex : string -> t
val of_hex_opt : string -> t option
val consistent_of_hex : string -> t
val consistent_of_hex_opt : string -> t option
val to_hex : t -> string
val of_raw_string : string -> t
val of_raw_string_opt : string -> t option
val to_raw_string : t -> string