Module Snarky_backendless.Merkle_tree

type ('hash, 'a) t
include Ppx_sexp_conv_lib.Sexpable.S2 with type ('hash, 'a) t := ( 'hash, 'a ) t
val t_of_sexp : ( Sexplib0__.Sexp.t -> 'a ) -> ( Sexplib0__.Sexp.t -> 'b ) -> Sexplib0__.Sexp.t -> ( 'a, 'b ) t
val sexp_of_t : ( 'a -> Sexplib0__.Sexp.t ) -> ( 'b -> Sexplib0__.Sexp.t ) -> ( 'a, 'b ) t -> Sexplib0__.Sexp.t
type ('hash, 'a) merkle_tree = ( 'hash, 'a ) t
module Address : sig ... end
module Free_hash : sig ... end
val depth : ( _, _ ) t -> int
val create : hash:( 'a option -> 'hash ) -> merge:( 'hash -> 'hash -> 'hash ) -> 'a -> ( 'hash, 'a ) t
val add : ( 'hash, 'a ) t -> 'a -> ( 'hash, 'a ) t
val add_many : ( 'hash, 'a ) t -> 'a list -> ( 'hash, 'a ) t
val get : ( _, 'a ) t -> Address.t -> 'a option
val get_exn : ( _, 'a ) t -> Address.t -> 'a
val get_path : ( 'hash, 'a ) t -> Address.t -> 'hash list
val implied_root : merge:( 'hash -> 'hash -> 'hash ) -> Address.t -> 'hash -> 'hash list -> 'hash
val get_free_path : ( _, 'a ) t -> Address.t -> 'a Free_hash.t list
val free_root : ( _, 'a ) t -> 'a Free_hash.t
val implied_free_root : Address.t -> 'a -> 'a Free_hash.t list -> 'a Free_hash.t
val root : ( 'hash, 'a ) t -> 'hash
val to_list : ( 'hash, 'a ) t -> 'a list
val check_exn : ( _, _ ) t -> unit
module Checked (Impl : Snark_intf.S) (Hash : sig ... end) (Elt : sig ... end) : sig ... end
module Run : sig ... end