Converts a form field into monadic form. This field is optional, i.e.
if filled in, it returns 'Just a', if left empty, it returns Nothing.
Arguments are the same as for mreq (apart from type of default value).

Run a form

This function is used to both initially render a form and to later extract
results from it. Note that, due to CSRF protection and a few other issues,
forms submitted via GET and POST are slightly different. As such, be sure to
call the relevant function based on how the form will be submitted, not
the current request method.

For example, a common case is displaying a form on a GET request and having
the form submit to a POST page. In such a case, both the GET and POST
handlers should use runFormPost.

Generate a blank form

Similar to runFormPost, except it always ignores the currently available
environment. This is necessary in cases like a wizard UI, where a single
page will both receive and incoming form and produce a new, blank form. For
general usage, you can stick with runFormPost.