Module Typ.Data_spec

type (!'r_var, !'r_value, !'k_var, !'k_value, !'f, !'checked) data_spec = ( 'r_var, 'r_value, 'k_var, 'k_value, 'f, 'checked ) Data_spec0.data_spec =
| :: : ( 'var, 'value, 'f0, 'checked0 ) Types.Typ.t * ( 'r_var0, 'r_value0, 'k_var0, 'k_value0, 'f1, 'checked1 ) data_spec -> ( 'r_var1, 'r_value1, 'var0 -> 'k_var1, 'value0 -> 'k_value1, 'f2, 'checked2 ) data_spec
| [] : ( 'r_var2, 'r_value2, 'r_var2, 'r_value2, 'f3, 'checked3 ) data_spec

A list of Type.Typ.t values, describing the inputs to a checked computation. The type ('r_var, 'r_value, 'k_var, 'k_value, 'field) t represents

  • 'k_value is the OCaml type of the computation
  • 'r_value is the OCaml type of the result
  • 'k_var is the type of the computation within the R1CS
  • 'k_value is the type of the result within the R1CS
  • 'field is the field over which the R1CS operates
  • 'checked is the type of checked computation that verifies the stored contents as R1CS variables.

This functions the same as OCaml's default list type:

Data_spec.[typ1; typ2; typ3]

Data_spec.(typ1 :: typs)

let open Data_spec in
[typ1; typ2; typ3; typ4; typ5]

let open Data_spec in
typ1 :: typ2 :: typs

all function as you would expect.

type (!'r_var0, !'r_value0, !'k_var0, !'k_value0, !'f0) t = ( 'r_var, 'r_value, 'k_var, 'k_value, 'f, ( unit, 'f ) Checked_runner.Simple.t ) data_spec
val size : ( 'a, 'b, 'c, 'd, 'f ) t -> int