These are the types used for building a form by combining record fields.

You should never have to think about them, but they have to be exposed for type-checking to work correctly.

`type ('tail, 'tail_ids, 'all_fields, 'all_ids, 'record) accum`````
`type ('field, 'head, 'head_ids, 'tail, 'tail_ids, 'all_fields, 'all_ids, 'record) fold_step``= ('head, 'head_ids, 'all_fields, 'all_ids, 'record) accum ‑> ('all_fields ‑> 'field) * ('tail, 'tail_ids, 'all_fields, 'all_ids, 'record) accum```
`type ('field, 'field_ids, 'tail, 'tail_ids, 'all_fields, 'all_ids, 'record) handle_one_field``= ('field, ('field, 'tail) Record_builder.Hlist.cons, ('field_ids, 'tail_ids) Record_builder.Hlist.cons, 'tail, 'tail_ids, 'all_fields Record_builder.Hlist.nonempty, 'all_ids Record_builder.Hlist.nonempty, 'record) fold_step```
`type ('all_fields, 'all_ids, 'record) handle_all_fields``= ('record, 'all_fields Record_builder.Hlist.nonempty, 'all_ids Record_builder.Hlist.nonempty, Record_builder.Hlist.nil, Record_builder.Hlist.nil, 'all_fields Record_builder.Hlist.nonempty, 'all_ids Record_builder.Hlist.nonempty, 'record) fold_step```