Module Proof_carrying_data

module Stable : sig ... end
type ('a, 'b) t = ( 'a, 'b ) Stable.Latest.t = {
data : 'a;
proof : 'b;
}
val t_of_sexp : 'a 'b. ( Ppx_sexp_conv_lib.Sexp.t -> 'a ) -> ( Ppx_sexp_conv_lib.Sexp.t -> 'b ) -> Ppx_sexp_conv_lib.Sexp.t -> ( 'a, 'b ) t
val sexp_of_t : 'a 'b. ( 'a -> Ppx_sexp_conv_lib.Sexp.t ) -> ( 'b -> Ppx_sexp_conv_lib.Sexp.t ) -> ( 'a, 'b ) t -> Ppx_sexp_conv_lib.Sexp.t
val proof : ( 'a, 'b ) t -> 'c
val data : ( 'a, 'b ) t -> 'c
module Fields : sig ... end
val map : ( 'a, 'b ) t -> f1:( 'c -> 'd ) -> f2:( 'e -> 'f ) -> ( 'g, 'h ) t