`module Id : sig ... end`

`Id.t` is an identifier for form elements

`module Block : sig ... end`

`Block.t Id.t` is an identifier for a block in a form.

`module List_id : sig ... end`

`List_id.t` is an identifier for a list of form elements in a form.

`module Variant_id : sig ... end`

`Variant_id.t` is an identifier for a variant selection in a form.

`module Form_error : sig ... end`

## Form validation

## Form Description

`module Description : sig ... end`

Module to create a form blueprint by taking basic building blocks (like bool or string fields) and combining them into more complex structures which can be themselves combined with other structures.

`type ('a, 'ids) t`````
`type ('a, 'ids) form``= ('a, 'ids) t```
`val create : name:string ‑> ('a, 'a, 'ids) Description.t ‑> ('a, 'ids) t`

Create a form from a form description. The name will only be used to provide better error messages.

`val to_description : ('a, 'ids) t ‑> ('a, 'a, 'ids) Description.t`
`module State : sig ... end`

## Form state

## List module

`module List : sig ... end`

Provides operations related to lists of forms.

## Input module

`module Input : sig ... end`

Wrappers to create VDom input fields using field ids.