Module Spec.T

type (_, _, _) t =
| B : ( 'a, 'b, 'env ) basic -> ( 'a, 'b, 'env ) t
| Scalar : ( 'a, 'b, 'env ) basic -> ( 'a Kimchi_backend_common.Scalar_challenge.t, 'b Kimchi_backend_common.Scalar_challenge.t, < challenge1 : 'a ; challenge2 : 'b.. > as 'env ) t
| Vector : ( 't1, 't2, 'env ) t * 'n Pickles_types.Nat.t -> ( ( 't1, 'n ) Pickles_types.Vector.t, ( 't2, 'n ) Pickles_types.Vector.t, 'env ) t
| Array : ( 't1, 't2, 'env ) t * int -> ( 't1 array, 't2 array, 'env ) t
| Struct : ( 'xs1, 'xs2, 'env ) Pickles_types.Hlist.H2_1.T(T).t -> ( 'xs1 Pickles_types.Hlist.HlistId.t, 'xs2 Pickles_types.Hlist.HlistId.t, 'env ) t
| Opt : {
inner : ( 'a1, 'a2, 'env ) t;
flag : Pickles_types.Plonk_types.Opt.Flag.t;
dummy1 : 'a1;
dummy2 : 'a2;
bool : (module Bool_intf with type var = 'bool);
} -> ( 'a1 option, ( 'a2, 'bool ) Pickles_types.Plonk_types.Opt.t, < bool1 : bool ; bool2 : 'bool.. > as 'env ) t