
I've been able to use digestive-functors with simple forms successfully in a snap application; however, I'm getting stuck when trying to handle a list of hidden inputs. There is something I'm not quite getting on how to use 'listOf'. Can anyone point me in the right direction? Thanks. The rendered html from a previous page includes the following hidden fields: <div id='messageForm.recipients' class='inputList'> <input type='hidden' name='messageForm.recipients.indices' value='0' /> <input type='hidden' id='messageForm.recipients.-1.email' name='messageForm.recipients.-1.email' value /> <input type='hidden' id='messageForm.recipients.0.email' name='messageForm.recipients.0.email' value='emai1l@email.com' /> <input type='hidden' id='messageForm.recipients.1.email' name='messageForm.recipients.1.email' value='email2@email.com' /> </div> The data types are: data ConfirmMessage = ConfirmMessage { isoDate :: T.Text, subject :: T.Text, body :: T.Text, action :: T.Text, recipients :: [Recipient]} deriving (Show) data Recipient = Recipient { email :: T.Text } deriving (Show) The forms are: messageForm :: (Monad m) => Form T.Text m ConfirmMessagemessageForm = ConfirmMessage <$> "isoDate" .: stringRead "Missing ISOdate" Nothing <*> "subject" .: stringRead "Subject required" Nothing <*> "body" .: stringRead "Body required" Nothing <*> "action" .: stringRead "Missing action" Nothing <*> "recipients" .: listOf recipientForm' Nothing recipientForm' :: (Monad m) => Formlet T.Text m RecipientrecipientForm'= Recipient <$> "email" .: stringRead "Missing email" Nothing Error message: Couldn't match type `Text.Digestive.Form.Internal.FormTree m0 v0 m0 Recipient' with `Maybe Recipient -> Form T.Text m Recipient' Expected type: Formlet T.Text m Recipient Actual type: Text.Digestive.Form.Internal.FormTree m0 v0 m0 Recipient Relevant bindings include recipientForm' :: Formlet T.Text m Recipient (bound at src/Handler/TradeNotifyConfirm.hs:224:1) In the expression: Recipient <$> "email" .: stringRead "Missing email" Nothing In an equation for `recipientForm'': recipientForm' = Recipient <$> "email" .: stringRead "Missing email" Nothing Thanks in advance, Neil