Module Composition_types.Spec

type 'f impl = (module Snarky_backendless.Snark_intf.Run with type field = 'f)
type (_, _, _) basic =
| Field : ( 'field1, 'field2, < field1 : 'field1 ; field2 : 'field2.. > ) basic
| Bool : ( 'bool1, 'bool2, < bool1 : 'bool1 ; bool2 : 'bool2.. > ) basic
| Digest : ( 'digest1, 'digest2, < digest1 : 'digest1 ; digest2 : 'digest2.. > ) basic
| Challenge : ( 'challenge1, 'challenge2, < challenge1 : 'challenge1 ; challenge2 : 'challenge2.. > ) basic
| Bulletproof_challenge : ( 'bp_chal1, 'bp_chal2, < bulletproof_challenge1 : 'bp_chal1 ; bulletproof_challenge2 : 'bp_chal2.. > ) basic
| Branch_data : ( 'branch_data1, 'branch_data2, < branch_data1 : 'branch_data1 ; branch_data2 : 'branch_data2.. > ) basic
module type Bool_intf = sig ... end
module T : sig ... end
module ETyp : sig ... end
val packed_typ : 'a impl -> ( 'b, 'c, 'a ) ETyp.t -> ( 'd, 'e, < bool1 : bool ; bool2 : 'a Snarky_backendless.Cvar.t Snarky_backendless.Snark_intf.Boolean0.t ; branch_data1 : Branch_data.t ; branch_data2 : 'a Snarky_backendless.Cvar.t ; bulletproof_challenge1 : Limb_vector.Challenge.Constant.t Kimchi_backend_common.Scalar_challenge.t Bulletproof_challenge.t ; bulletproof_challenge2 : 'a Snarky_backendless.Cvar.t Kimchi_backend_common.Scalar_challenge.t Bulletproof_challenge.t ; challenge1 : Limb_vector.Challenge.Constant.t ; challenge2 : 'a Snarky_backendless.Cvar.t ; digest1 : ( Limb_vector.Constant.Hex64.t, Digest.Limbs.n ) Pickles_types.Vector.vec ; digest2 : 'a Snarky_backendless.Cvar.t ; field1 : 'c ; field2 : 'b.. > ) T.t -> ( 'e, 'd, 'a ) ETyp.t
val pack : 'f impl -> ( 'a, 'b, < bool1 : bool ; bool2 : 'f Snarky_backendless.Cvar.t Snarky_backendless.Snark_intf.Boolean0.t ; branch_data1 : Branch_data.t ; branch_data2 : 'f Branch_data.Checked.t ; bulletproof_challenge1 : Limb_vector.Challenge.Constant.t Kimchi_backend_common.Scalar_challenge.t Bulletproof_challenge.t ; bulletproof_challenge2 : 'f Limb_vector.Challenge.t Kimchi_backend_common.Scalar_challenge.t Bulletproof_challenge.t ; challenge1 : Limb_vector.Challenge.Constant.t ; challenge2 : 'f Limb_vector.Challenge.t ; digest1 : ( Limb_vector.Constant.Hex64.t, Digest.Limbs.n ) Pickles_types.Vector.vec ; digest2 : 'f Snarky_backendless.Cvar.t ; field1 : 'c ; field2 : 'd.. > ) T.t -> 'b -> [ `Field of 'd | `Packed_bits of 'f Snarky_backendless.Cvar.t * int ] array