úÎ)Õ'¸     KCapitalizes the first letter and filters out all the non-alpha characters. +Capitalize the first letter of the string. 2Generates a human-readable version of a selector.  non-portable experimentalchris@eidhof.nl  The class  converts a simple value a into .  The class  converts a simple value a into .  The function  converts an a value into   The function  converts a list of a s into an $ table with a row for each element.  non-portable experimentalchris@eidhof.nl6This class is used for both generation and parsing of  . !" The function  tries to parse a #. The $7 datatype is used for error-messages if parsing fails.  The function  generates a #' for all types that are an instance of . %& non-portable experimentalchris@eidhof.nl !This datatype is used to display ' values as Yes or No.  ( ŒGeneric forms almost never match the real world. If you want to change a generic form, you can either implement it from scratch, or use the  function. %As an example, we will to remove the age% field from the form, and change the _isMale field to a Yes/No choice instead of a True/False choice. The datatype  is defined in this module.   data PersonView = PersonView {  __name :: String  , __isMale :: YesNo  }  * $(deriveAll ''PersonView "PFPersonView") , type instance PF PersonView = PFPersonView We can now use fclabels# to convert back and forth between Person and   PersonViewF. First, we use Template Haskell to generate some accessor functions:   $(mkLabels [''Person]) +This is the bidirectional function between Person and  PersonViewC. How to write such a function is explained in the well-documented fclabels package at  +http://hackage.haskell.org/package/fclabels.  ! toView :: Person :-> PersonView a toView = Label (PersonView <$> __name `for` name <*> __isMale `for` (boolToYesNo `iso` isMale)) &Now that we have a function with type Person :-> PersonView, we can render a  form for  personView; and update the original person. Note that the argument is  not a Maybe value, in contrast with the gformlet function.  0 personForm' :: Person -> XForm Identity Person $ personForm' = projectedForm toView  formHtml' :: X.Html D (_, Identity formHtml', _) = F.runFormState [] (personForm' chris)  This is an fclabels function that converts between ' and  values.           )      !"#$%&'()*&+,&'-./01234regular-web-0.1Generics.Regular.ViewsGenerics.Regular.JSONGenerics.Regular.FormletsGenerics.Regular.ExtrasGHtmlHtmlhtmlghtmlGJSONgfromgtoYesNoNoYesGFormletFormletformletXFormletXFormgformgformlet projectedForm boolToYesNoprodFstprodSnd humanReadable capitalizehGTablegtablefTabletablexhtml-3000.2.0.1Text.XHtml.Internalsghtmlfgtable gtableRow json-0.4.3 Text.JSONJSONgto'gfrom'Text.JSON.TypesJSValueResultmerge mergeListghc-primGHC.BoolBoolgformf