packages feed

reform-hsp 0.1.2 → 0.2.0

raw patch · 4 files changed

+119/−113 lines, 4 filesdep ~hspdep ~reform

Dependency ranges changed: hsp, reform

Files

Text/Reform/HSP/Common.hs view
@@ -1,17 +1,20 @@-{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies, UndecidableInstances, ViewPatterns #-}-{-# OPTIONS_GHC -F -pgmFtrhsx #-}+{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies, UndecidableInstances, ViewPatterns, OverloadedStrings #-}+{-# OPTIONS_GHC -F -pgmFhsx2hs #-} module Text.Reform.HSP.Common where +import Data.Text.Lazy (Text, pack)+import qualified Data.Text as T import Text.Reform.Backend import Text.Reform.Core import Text.Reform.Generalized as G import Text.Reform.Result (FormId, Result(Ok), unitRange)-import HSP+import HSP.XMLGenerator+import HSP.XML -instance (EmbedAsAttr m (Attr String String)) => (EmbedAsAttr m (Attr String FormId)) where-    asAttr (n := v) = asAttr (n := show v)+instance (EmbedAsAttr m (Attr Text Text)) => (EmbedAsAttr m (Attr Text FormId)) where+    asAttr (n := v) = asAttr (n := (pack $ show v)) -inputText :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputText :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>              (input -> Either error text)           -> text           -> Form m input error [XMLGenT x (XMLType x)] () text@@ -19,7 +22,7 @@     where       inputField i a = [<input type="text" id=i name=i value=a />] -inputPassword :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputPassword :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>              (input -> Either error text)           -> text           -> Form m input error [XMLGenT x (XMLType x)] () text@@ -27,7 +30,7 @@     where       inputField i a = [<input type="password" id=i name=i value=a />] -inputSubmit :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputSubmit :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>              (input -> Either error text)           -> text           -> Form m input error [XMLGenT x (XMLType x)] () (Maybe text)@@ -35,14 +38,14 @@     where       inputField i a = [<input type="submit" id=i name=i value=a />] -inputReset :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputReset :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>               text            -> Form m input error [XMLGenT x (XMLType x)] () () inputReset lbl = G.inputNoData inputField lbl     where       inputField i a = [<input type="reset" id=i name=i value=a />] -inputHidden :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputHidden :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>              (input -> Either error text)           -> text           -> Form m input error [XMLGenT x (XMLType x)] () text@@ -50,14 +53,14 @@     where       inputField i a = [<input type="hidden" id=i name=i value=a />] -inputButton :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+inputButton :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>              text           -> Form m input error [XMLGenT x (XMLType x)] () () inputButton label = G.inputNoData inputField label     where       inputField i a = [<input type="button" id=i name=i value=a />] -textarea :: (Monad m, FormError error, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsChild x text) =>+textarea :: (Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsChild x text) =>             (input -> Either error text)          -> Int    -- ^ cols          -> Int    -- ^ rows@@ -70,14 +73,14 @@ -- | Create an @\<input type=\"file\"\>@ element -- -- This control may succeed even if the user does not actually select a file to upload. In that case the uploaded name will likely be "" and the file contents will be empty as well.-inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>              Form m input error [XMLGenT x (XMLType x)] () (FileType input) inputFile = G.inputFile fileView     where       fileView i = [<input type="file" name=i id=i />]  -- | Create a @\<button type=\"submit\"\>@ element-buttonSubmit :: ( Monad m, FormError error, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String text)) =>+buttonSubmit :: ( Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text text)) =>                 (input -> Either error text)              -> text              -> children@@ -86,7 +89,7 @@     where       inputField i a = [<button type="submit" id=i name=i value=a><% c %></button>] -buttonReset :: ( Monad m, FormError error, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)+buttonReset :: ( Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)                 ) =>                children              -> Form m input error [XMLGenT x (XMLType x)] () ()@@ -94,7 +97,7 @@     where       inputField i a = [<button type="reset" id=i name=i><% c %></button>] -button :: ( Monad m, FormError error, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)+button :: ( Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)                 ) =>                children              -> Form m input error [XMLGenT x (XMLType x)] () ()@@ -102,7 +105,7 @@     where       inputField i a = [<button type="button" id=i name=i><% c %></button>] -label :: (Monad m, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsChild x c) =>+label :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsChild x c) =>          c       -> Form m input error [XMLGenT x (XMLType x)] () () label c = G.label mkLabel@@ -110,7 +113,7 @@       mkLabel i = [<label for=i><% c %></label>]  -- FIXME: should this use inputMaybe?-inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>                    Bool  -- ^ initially checked                 -> Form m input error [XMLGenT x (XMLType x)] () Bool inputCheckbox initiallyChecked =@@ -121,19 +124,19 @@            Default   -> mkCheckbox i initiallyChecked            Missing   -> mkCheckbox i False -- checkboxes only appear in the submitted data when checked            (Found input) ->-               case getInputString input of+               case getInputText input of                  (Right _) -> mkCheckbox i True                  (Left  (e :: error) ) -> mkCheckbox i False     where       mkCheckbox i checked =-          return ( View $ const $ [<input type="checkbox" id=i name=i value=i (if checked then [("checked" := "checked")] else []) />]+          return ( View $ const $ [<input type="checkbox" id=i name=i value=i (if checked then [("checked" := "checked") :: Attr Text Text] else []) />]                  , return $ Ok (Proved { proofs   = ()                                        , pos      = unitRange i                                        , unProved = if checked then True else False                                        })                  ) -inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                   [(a, lbl)]  -- ^ value, label, initially checked                 -> (a -> Bool) -- ^ function which indicates if a value should be checked initially                 -> Form m input error [XMLGenT x (XMLType x)] () [a]@@ -142,11 +145,11 @@     where       mkCheckboxes nm choices' = concatMap (mkCheckbox nm) choices'       mkCheckbox nm (i, val, lbl, checked) =-             [ <input type="checkbox" id=i name=nm value=(show val) (if checked then [("checked" := "checked")] else []) />+             [ <input type="checkbox" id=i name=nm value=(pack $ show val) (if checked then [("checked" := "checked") :: Attr Text Text] else []) />              , <label for=i><% lbl %></label>              ] -inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ value, label, initially checked            -> (a -> Bool) -- ^ isDefault            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -155,12 +158,12 @@     where       mkRadios nm choices' = concatMap (mkRadio nm) choices'       mkRadio nm (i, val, lbl, checked) =-             [ <input type="radio" id=i name=nm value=(show val) (if checked then [("checked" := "checked")] else []) />+             [ <input type="radio" id=i name=nm value=(pack $ show val) (if checked then [("checked" := "checked") :: Attr Text Text] else []) />              , <label for=i><% lbl %></label>              , <br />              ] -select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ value, label            -> (a -> Bool) -- ^ isDefault, must match *exactly one* element in the list of choices            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -174,11 +177,11 @@           ]        mkOption (_, val, lbl, selected) =-          <option value=val (if selected then ["selected" := "selected"] else [])>+          <option value=val (if selected then [("selected" := "selected") :: Attr Text Text] else []) >            <% lbl %>           </option> -selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                   [(a, lbl)]  -- ^ value, label, initially checked                -> (a -> Bool)  -- ^ isSelected initially                -> Form m input error [XMLGenT x (XMLType x)] () [a]@@ -191,11 +194,11 @@            </select>           ]       mkOption (_, val, lbl, selected) =-          <option value=val (if selected then ["selected" := "selected"] else [])>+          <option value=val (if selected then [("selected" := "selected") :: Attr Text Text] else [])>            <% lbl %>           </option> {--inputMultiSelectOptGroup :: (Functor m, XMLGenerator x, EmbedAsChild x groupLbl, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId), FormError error, ErrorInputType error ~ input, FormInput input, Monad m) =>+inputMultiSelectOptGroup :: (Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x groupLbl, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId), FormError error, ErrorInputType error ~ input, FormInput input, Monad m) =>                    [(groupLbl, [(a, lbl, Bool)])]  -- ^ value, label, initially checked                 -> Form m input error [XMLGenT x (XMLType x)] () [a] inputMultiSelectOptGroup choices =@@ -216,7 +219,7 @@           </option> -} -errorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+errorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () errorList = G.errors mkErrors     where@@ -224,7 +227,7 @@       mkErrors errs = [<ul class="reform-error-list"><% mapM mkError errs %></ul>]       mkError e     = <li><% e %></li> -childErrorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+childErrorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () childErrorList = G.childErrors mkErrors     where@@ -233,34 +236,34 @@       mkError e     = <li><% e %></li>  -br :: (Monad m, XMLGenerator x) => Form m input error [XMLGenT x (XMLType x)] () ()+br :: (Monad m, XMLGenerator x, StringType x ~ Text) => Form m input error [XMLGenT x (XMLType x)] () () br = view [<br />] -fieldset :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+fieldset :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>             Form m input error c proof a          -> Form m input error [XMLGenT x (XMLType x)] proof a fieldset frm = mapView (\xml -> [<fieldset class="reform"><% xml %></fieldset>]) frm -ol :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ol :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ol frm = mapView (\xml -> [<ol class="reform"><% xml %></ol>]) frm -ul :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ul :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ul frm = mapView (\xml -> [<ul class="reform"><% xml %></ul>]) frm -li :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+li :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a li frm = mapView (\xml -> [<li class="reform"><% xml %></li>]) frm  -- | create @\<form action=action method=\"POST\" enctype=\"multipart/form-data\"\>@-form :: (XMLGenerator x, EmbedAsAttr x (Attr String action)) =>+form :: (XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text action)) =>         action                  -- ^ action url-     -> [(String,String)]       -- ^ hidden fields to add to form-     -> [XMLGenT x (XMLType x)] -- ^ childern+     -> [(Text,Text)]       -- ^ hidden fields to add to form+     -> [XMLGenT x (XMLType x)] -- ^ children      -> [XMLGenT x (XMLType x)] form action hidden children     = [ <form action=action method="POST" enctype="multipart/form-data">@@ -272,7 +275,7 @@       mkHidden (name, value) =           <input type="hidden" name=name value=value /> -setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, Monad m, Functor m) =>+setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m, Functor m) =>             Form m input error [GenXML x] proof a          -> attr          -> Form m input error [GenXML x] proof a
Text/Reform/HSP/String.hs view
@@ -41,18 +41,19 @@     , setAttrs     ) where -import HSP+import Data.Text.Lazy (Text, pack)+import HSP.XMLGenerator import Text.Reform import qualified Text.Reform.HSP.Common as C  -- | Create an @\<input type=\"text\"\>@ element-inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                String -- ^ initial value             -> Form m input error [XMLGenT x (XMLType x)] () String inputText initialValue = C.inputText getInputString initialValue  -- | Create an @\<input type=\"password\"\>@ element-inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                  Form m input error [XMLGenT x (XMLType x)] () String inputPassword = C.inputPassword getInputString "" @@ -63,7 +64,7 @@ --   [@Just@ /value/] if this button was used to submit the form. -- --   [@Nothing@]    if this button was not used to submit the form.-inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                String -- ^ @value@ attribute. Used for button label, and value if button is submitted.             -> Form m input error [XMLGenT x (XMLType x)] () (Maybe String) inputSubmit initialValue = C.inputSubmit getInputString initialValue@@ -71,13 +72,13 @@ -- | Create an @\<input type=\"reset\"\>@ element -- -- This element does not add any data to the form data set.-inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>               String -- ^ value attribute. Used only to label the button.            -> Form m input error [XMLGenT x (XMLType x)] () () inputReset = C.inputReset  -- | Create an @\<input type=\"hidden\"\>@ element-inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                String -- ^ value to store in the hidden element             -> Form m input error [XMLGenT x (XMLType x)] () String inputHidden initialValue = C.inputHidden getInputString initialValue@@ -87,13 +88,13 @@ -- The element is a push button with a text label. The button does nothing by default, but actions can be added using javascript. This element does not add any data to the form data set. -- -- see also: 'C.button'-inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                String -- ^ value attribute. Used to label the button.             -> Form m input error [XMLGenT x (XMLType x)] () () inputButton label = C.inputButton label  -- | Create a \<textarea\>\<\/textarea\> element-textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>             Int    -- ^ cols          -> Int    -- ^ rows          -> String -- ^ initial contents@@ -101,7 +102,7 @@ textarea rows cols initialValue = C.textarea getInputString rows cols initialValue  -- | create a  @\<button type=\"submit\"\>\<\/button\>@ element-buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)) =>+buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text String)) =>                 String -- ^ value attribute. Returned if this button submits the form.              -> children -- ^ children to embed in the \<button\>              -> Form m input error [XMLGenT x (XMLType x)] () (Maybe String)@@ -116,21 +117,21 @@ -- returns a 'Bool' indicating if it was checked or not. -- -- see also 'inputCheckboxes'-inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>                    Bool  -- ^ initially checked                 -> Form m input error [XMLGenT x (XMLType x)] () Bool inputCheckbox = C.inputCheckbox  -- | Create a group of @\<input type=\"checkbox\"\>@ elements ---inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                    [(a, lbl)]  -- ^ (value, label)                 -> (a -> Bool) -- ^ function which marks if a value should be checked (aka, selected) initially or not. Can match zero or more elements.                 -> Form m input error [XMLGenT x (XMLType x)] () [a] inputCheckboxes = C.inputCheckboxes  -- | Create a group of @\<input type=\"radio\"\>@ elements-inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ (value, label)            -> (a -> Bool) -- ^ predicate which returns @True@ if @a@ should be initially checked. Must match exactly one value in the previous argument.            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -139,14 +140,14 @@ -- | Create an @\<input type=\"file\"\>@ element -- -- This control may succeed even if the user does not actually select a file to upload. In that case the uploaded name will likely be \"\" and the file contents will be empty as well.-inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>              Form m input error [XMLGenT x (XMLType x)] () (FileType input) inputFile = C.inputFile  -- | create a  @\<button type=\"reset\"\>\<\/button\>@ element -- -- This element does not add any data to the form data set.-buttonReset :: ( Monad m, FormError error, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)+buttonReset :: ( Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)                 ) =>                children -- ^ children of the @<\/button\>@ element              -> Form m input error [XMLGenT x (XMLType x)] () ()@@ -155,7 +156,7 @@ -- | create a  @\<button type=\"button\"\>\<\/button\>@ element -- -- This element does not add any data to the form data set.-button :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)) =>+button :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)) =>           children -- ^ children to embed in the \<button\>        -> Form m input error [XMLGenT x (XMLType x)] () () button = C.button@@ -163,7 +164,7 @@ -- | create @\<select\>\<\/select\>@ element plus its @\<option\>\<\/option\>@ children. -- -- see also: 'selectMultiple'-select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ (value, label)            -> (a -> Bool) -- ^ specifies which value is initially selected. Must match *exactly one* element in the list of choices            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -172,7 +173,7 @@ -- | create @\<select multiple=\"multiple\"\>\<\/select\>@ element plus its @\<option\>\<\/option\>@ children. -- -- This creates a @\<select\>@ element which allows more than one item to be selected.-selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                   [(a, lbl)]  -- ^ (value, label)                -> (a -> Bool) -- ^ specifies which values are initially selected. Can match 0 or more elements.                -> Form m input error [XMLGenT x (XMLType x)] () [a]@@ -183,7 +184,7 @@ -- Use this with <++ or ++> to ensure that the @for@ attribute references the correct @id@. -- -- > label "some input field: " ++> inputText ""-label :: (Monad m, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsChild x c) =>+label :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsChild x c) =>          c       -> Form m input error [XMLGenT x (XMLType x)] () () label = C.label@@ -191,7 +192,7 @@ -- | create a @\<ul\>@ which contains all the errors related to the 'Form'. -- -- The @<\ul\>@ will have the attribute @class=\"reform-error-list\"@.-errorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+errorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () errorList = C.errorList @@ -200,49 +201,49 @@ -- Includes errors from children of the current form. -- -- The @<\ul\>@ will have the attribute @class=\"reform-error-list\"@.-childErrorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+childErrorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () childErrorList = C.childErrorList  -- | create a @\<br\>@ tag.-br :: (Monad m, XMLGenerator x) => Form m input error [XMLGenT x (XMLType x)] () ()+br :: (Monad m, XMLGenerator x, StringType x ~ Text) => Form m input error [XMLGenT x (XMLType x)] () () br = C.br  -- | wrap a @\<fieldset class=\"reform\"\>@ around a 'Form' ---fieldset :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+fieldset :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>             Form m input error c proof a          -> Form m input error [XMLGenT x (XMLType x)] proof a fieldset = C.fieldset  -- | wrap an @\<ol class=\"reform\"\>@ around a 'Form'-ol :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ol :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ol = C.ol  -- | wrap a @\<ul class=\"reform\"\>@ around a 'Form'-ul :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ul :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ul = C.ul  -- | wrap a @\<li class=\"reform\"\>@ around a 'Form'-li :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+li :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a li = C.li  -- | create @\<form action=action method=\"POST\" enctype=\"multipart/form-data\"\>@-form :: (XMLGenerator x, EmbedAsAttr x (Attr String action)) =>+form :: (XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text action)) =>         action                  -- ^ action url-     -> [(String,String)]       -- ^ extra hidden fields to add to form+     -> [(Text, Text)]       -- ^ extra hidden fields to add to form      -> [XMLGenT x (XMLType x)] -- ^ children      -> [XMLGenT x (XMLType x)] form = C.form  -- | set the attributes on the top-level elements of 'Form'-setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, Monad m, Functor m) =>+setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m, Functor m) =>             Form m input error [XMLGenT x (XMLType x)] proof a          -> attr          -> Form m input error [GenXML x] proof a
Text/Reform/HSP/Text.hs view
@@ -41,20 +41,22 @@     , setAttrs     ) where -import Data.Text (Text, empty)-import HSP+import Data.Text (empty)+import qualified Data.Text as T+import Data.Text.Lazy (Text)+import HSP.XMLGenerator import Text.Reform import qualified Text.Reform.HSP.Common as C  -- | Create an @\<input type=\"text\"\>@ element-inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-               Text -- ^ initial value-            -> Form m input error [XMLGenT x (XMLType x)] () Text+inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text)) =>+               T.Text -- ^ initial value+            -> Form m input error [XMLGenT x (XMLType x)] () T.Text inputText initialValue = C.inputText getInputText initialValue  -- | Create an @\<input type=\"password\"\>@ element-inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-                 Form m input error [XMLGenT x (XMLType x)] () Text+inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text)) =>+                 Form m input error [XMLGenT x (XMLType x)] () T.Text inputPassword = C.inputPassword getInputText empty  -- | Create an @\<input type=\"submit\"\>@ element@@ -64,23 +66,23 @@ --   [@Just@ /value/] if this button was used to submit the form. -- --   [@Nothing@]    if this button was not used to submit the form.-inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-               Text -- ^ @value@ attribute. Used for button label, and value if button is submitted.-            -> Form m input error [XMLGenT x (XMLType x)] () (Maybe Text)+inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text)) =>+               T.Text -- ^ @value@ attribute. Used for button label, and value if button is submitted.+            -> Form m input error [XMLGenT x (XMLType x)] () (Maybe T.Text) inputSubmit initialValue = C.inputSubmit getInputText initialValue  -- | Create an @\<input type=\"reset\"\>@ element -- -- This element does not add any data to the form data set.-inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-              Text -- ^ value attribute. Used only to label the button.+inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text)) =>+              T.Text -- ^ value attribute. Used only to label the button.            -> Form m input error [XMLGenT x (XMLType x)] () () inputReset = C.inputReset  -- | Create an @\<input type=\"hidden\"\>@ element-inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-               Text -- ^ value to store in the hidden element-            -> Form m input error [XMLGenT x (XMLType x)] () Text+inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text)) =>+               T.Text -- ^ value to store in the hidden element+            -> Form m input error [XMLGenT x (XMLType x)] () T.Text inputHidden initialValue = C.inputHidden getInputText initialValue  -- | Create an @\<input type=\"button\"\>@ element@@ -88,24 +90,24 @@ -- The element is a push button with a text label. The button does nothing by default, but actions can be added using javascript. This element does not add any data to the form data set. -- -- see also: 'C.button'-inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>+inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text Text)) =>                Text -- ^ value attribute. Used to label the button.             -> Form m input error [XMLGenT x (XMLType x)] () () inputButton label = C.inputButton label  -- | Create a \<textarea\>\<\/textarea\> element-textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text), EmbedAsChild x Text) =>+textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x (Attr Text T.Text), EmbedAsChild x T.Text) =>             Int    -- ^ cols          -> Int    -- ^ rows-         -> Text -- ^ initial contents-         -> Form m input error [XMLGenT x (XMLType x)] () Text+         -> T.Text -- ^ initial contents+         -> Form m input error [XMLGenT x (XMLType x)] () T.Text textarea rows cols initialValue = C.textarea getInputText rows cols initialValue  -- | create a  @\<button type=\"submit\"\>\<\/button\>@ element-buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId), EmbedAsAttr x (Attr String Text)) =>-                Text -- ^ value attribute. Returned if this button submits the form.+buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId), EmbedAsAttr x  (Attr Text T.Text)) =>+                T.Text -- ^ value attribute. Returned if this button submits the form.              -> children -- ^ children to embed in the \<button\>-             -> Form m input error [XMLGenT x (XMLType x)] () (Maybe Text)+             -> Form m input error [XMLGenT x (XMLType x)] () (Maybe T.Text) buttonSubmit = C.buttonSubmit getInputText  --------------------------------------------------------------------------------@@ -117,21 +119,21 @@ -- returns a 'Bool' indicating if it was checked or not. -- -- see also 'inputCheckboxes'-inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputCheckbox :: forall x error input m. (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>                    Bool  -- ^ initially checked                 -> Form m input error [XMLGenT x (XMLType x)] () Bool inputCheckbox = C.inputCheckbox  -- | Create a group of @\<input type=\"checkbox\"\>@ elements ---inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputCheckboxes :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                    [(a, lbl)]  -- ^ (value, label)                 -> (a -> Bool) -- ^ function which marks if a value should be checked (aka, selected) initially or not. Can match zero or more elements.                 -> Form m input error [XMLGenT x (XMLType x)] () [a] inputCheckboxes = C.inputCheckboxes  -- | Create a group of @\<input type=\"radio\"\>@ elements-inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+inputRadio :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ (value, label)            -> (a -> Bool) -- ^ predicate which returns @True@ if @a@ should be initially checked. Must match exactly one value in the previous argument.            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -140,14 +142,14 @@ -- | Create an @\<input type=\"file\"\>@ element -- -- This control may succeed even if the user does not actually select a file to upload. In that case the uploaded name will likely be \"\" and the file contents will be empty as well.-inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsAttr x (Attr String FormId)) =>+inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId)) =>              Form m input error [XMLGenT x (XMLType x)] () (FileType input) inputFile = C.inputFile  -- | create a  @\<button type=\"reset\"\>\<\/button\>@ element -- -- This element does not add any data to the form data set.-buttonReset :: ( Monad m, FormError error, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)+buttonReset :: ( Monad m, FormError error, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)                 ) =>                children -- ^ children of the @<\/button\>@ element              -> Form m input error [XMLGenT x (XMLType x)] () ()@@ -156,7 +158,7 @@ -- | create a  @\<button type=\"button\"\>\<\/button\>@ element -- -- This element does not add any data to the form data set.-button :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, EmbedAsChild x children , EmbedAsAttr x (Attr String FormId)) =>+button :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x children , EmbedAsAttr x (Attr Text FormId)) =>           children -- ^ children to embed in the \<button\>        -> Form m input error [XMLGenT x (XMLType x)] () () button = C.button@@ -164,7 +166,7 @@ -- | create @\<select\>\<\/select\>@ element plus its @\<option\>\<\/option\>@ children. -- -- see also: 'selectMultiple'-select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+select :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>               [(a, lbl)]  -- ^ (value, label)            -> (a -> Bool) -- ^ specifies which value is initially selected. Must match *exactly one* element in the list of choices            -> Form m input error [XMLGenT x (XMLType x)] () a@@ -173,7 +175,7 @@ -- | create @\<select multiple=\"multiple\"\>\<\/select\>@ element plus its @\<option\>\<\/option\>@ children. -- -- This creates a @\<select\>@ element which allows more than one item to be selected.-selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, EmbedAsChild x lbl, EmbedAsAttr x (Attr String FormId)) =>+selectMultiple :: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, XMLGenerator x, StringType x ~ Text, EmbedAsChild x lbl, EmbedAsAttr x (Attr Text FormId)) =>                   [(a, lbl)]  -- ^ (value, label)                -> (a -> Bool) -- ^ specifies which values are initially selected. Can match 0 or more elements.                -> Form m input error [XMLGenT x (XMLType x)] () [a]@@ -186,7 +188,7 @@ -- > label "some input field: " ++> inputText "" -- -- see also: 'labelText'-label :: (Monad m, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsChild x c) =>+label :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsChild x c) =>          c       -> Form m input error [XMLGenT x (XMLType x)] () () label = C.label@@ -202,7 +204,7 @@ -- ambiguous type errors when attempting to apply 'label' to a string -- literal. While the type error can be fixed using an explicit type -- signature, calling 'labelText' looks nicer.-labelText :: (Monad m, XMLGenerator x, EmbedAsAttr x (Attr String FormId), EmbedAsChild x Text) =>+labelText :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text FormId), EmbedAsChild x Text) =>          Text       -> Form m input error [XMLGenT x (XMLType x)] () () labelText = C.label@@ -211,7 +213,7 @@ -- | create a @\<ul\>@ which contains all the errors related to the 'Form'. -- -- The @<\ul\>@ will have the attribute @class=\"reform-error-list\"@.-errorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+errorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () errorList = C.errorList @@ -220,49 +222,49 @@ -- Includes errors from children of the current form. -- -- The @<\ul\>@ will have the attribute @class=\"reform-error-list\"@.-childErrorList :: (Monad m, XMLGenerator x, EmbedAsChild x error) =>+childErrorList :: (Monad m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x error) =>              Form m input error [XMLGenT x (XMLType x)] () () childErrorList = C.childErrorList  -- | create a @\<br\>@ tag.-br :: (Monad m, XMLGenerator x) => Form m input error [XMLGenT x (XMLType x)] () ()+br :: (Monad m, XMLGenerator x, StringType x ~ Text) => Form m input error [XMLGenT x (XMLType x)] () () br = C.br  -- | wrap a @\<fieldset class=\"reform\"\>@ around a 'Form' ---fieldset :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+fieldset :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>             Form m input error c proof a          -> Form m input error [XMLGenT x (XMLType x)] proof a fieldset = C.fieldset  -- | wrap an @\<ol class=\"reform\"\>@ around a 'Form'-ol :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ol :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ol = C.ol  -- | wrap a @\<ul class=\"reform\"\>@ around a 'Form'-ul :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+ul :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a ul = C.ul  -- | wrap a @\<li class=\"reform\"\>@ around a 'Form'-li :: (Monad m, Functor m, XMLGenerator x, EmbedAsChild x c) =>+li :: (Monad m, Functor m, XMLGenerator x, StringType x ~ Text, EmbedAsChild x c) =>       Form m input error c proof a    -> Form m input error [XMLGenT x (XMLType x)] proof a li = C.li  -- | create @\<form action=action method=\"POST\" enctype=\"multipart/form-data\"\>@-form :: (XMLGenerator x, EmbedAsAttr x (Attr String action)) =>+form :: (XMLGenerator x, StringType x ~ Text, EmbedAsAttr x (Attr Text action)) =>         action                  -- ^ action url-     -> [(String,String)]       -- ^ extra hidden fields to add to form+     -> [(Text,Text)]       -- ^ extra hidden fields to add to form      -> [XMLGenT x (XMLType x)] -- ^ children      -> [XMLGenT x (XMLType x)] form = C.form  -- | set the attributes on the top-level elements of 'Form'-setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, Monad m, Functor m) =>+setAttrs :: (EmbedAsAttr x attr, XMLGenerator x, StringType x ~ Text, Monad m, Functor m) =>             Form m input error [XMLGenT x (XMLType x)] proof a          -> attr          -> Form m input error [GenXML x] proof a
reform-hsp.cabal view
@@ -1,5 +1,5 @@ Name:                reform-hsp-Version:             0.1.2+Version:             0.2.0 Synopsis:            Add support for using HSP with Reform Description:         Reform is a library for building and validating forms using applicative functors. This package add support for using reform with HSP. Homepage:            http://www.happstack.com/@@ -22,6 +22,6 @@                        Text.Reform.HSP.String                        Text.Reform.HSP.Text   Build-depends:       base > 4 && <5,-                       hsp   == 0.7.*,-                       reform == 0.1.*,+                       hsp    == 0.9.*,+                       reform == 0.2.*,                        text   == 0.11.*