úÎ+˜*³  None  create an   to be used with    similar to 'eitherForm environment' but includes double-submit / (Cross Site Request Forgery) CSRF protection. &The form must have been created using   see also:   similar to   but includes double-submit / (Cross Site Request Forgery) CSRF protection. Must be used with .  see also: . Utility Function: wrap the view in a <form> that includes  double-submit CSRF protection. calls + to set the cookie and adds the token as a  hidden field.  see also: , ,  3Utility Function: add a cookie for CSRF protection -Utility Function: get CSRF protection cookie RUtility Function: check that the CSRF cookie and hidden field exist and are equal -If the check fails, this function will call: 6 escape $ forbidden (toResponse "CSRF check failed.") -generate the name to use for the csrf cookie )Currently this returns the static cookie  reform-csrf . Using the prefix would allow -This function allows you to embed a a single   into a HTML page. %In general, you will want to use the   function instead,  which allows more than one   to be used on the same page.  see also:   this function embeds a   in an HTML page. "When the page is requested with a  request, the form view will  be rendered. "When the page is requested with a  request, the form data " will be extracted and validated. @If a value is successfully produced the success handler will be  called with the value. =On failure the failure handler will be called. If no failure D handler is provided, then the page will simply be redisplayed. The G form will be rendered with the errors and previous submit data shown. The first argument to  # is a function which generates the  <form>9 tag. It should generally come from the template library  you are using, such as the form function from  reform-hsp. The [(String, String)] argument is a list of ' (name, value)' ; pairs for extra hidden fields that should be added to the  <form>9 tag. These hidden fields are used to provide cross-site E request forgery (CSRF) protection, and to support multiple forms on  the same page. wrap raw form html inside a  form tag  form prefix  Form to run Result wrap raw form html inside a <form> tag wrap raw form html inside a <form> tag name to use for the cookie wrap raw form html inside a  form tag prefix !handler used when form validates )handler used when form does not validate  the formlet wrap raw form html inside a <form> tag prefix )success handler used when form validates 1failure handler used when form does not validate  the formlet           reform-happstack-0.1.2Text.Reform.Happstack environmenthappstackEitherFormhappstackViewForm happstackView addCSRFCookie getCSRFCookie checkCSRFcsrfName reformSinglereform reform-0.1.2Text.Reform.Core EnvironmentrunFormviewFormFormhappstack-server-7.1.7.1Happstack.Server.Internal.TypesGETPOST $fFormInput[]