Form

a Form contains a View combined with a validation function
which will attempt to extract a value from submitted form data.

It is highly parameterized, allowing it work in a wide variety of
different configurations. You will likely want to make a type alias
that is specific to your application to make type signatures more
manageable.

m

A monad which can be used by the validator

input

A framework specific type for representing the raw key/value pairs from the form data

error

A application specific type for error messages

view

The type of data being generated for the view (HSP, Blaze Html, Heist, etc)

proof

A type which names what has been proved about the return value. () means nothing has been proved.

a

Value return by form when it is successfully decoded, validated, etc.

This type is very similar to the Form type from
digestive-functors <= 0.2. If proof is (), then Form is an
applicative functor and can be used almost exactly like
digestive-functors <= 0.2.