> Use one of the general monadic combinators given in Control.Monad: > > liftM3 UserPanel (xmlGetWidget xml castToEntry "signatureEntry") > (xmlGetWidget xml castToEntry "passwordEntry") > (xmlGetWidget xml castToEntry "repeatEntry") > > or > > return UserPanel > `ap` xmlGetWidget xml castToEntry "signatureEntry" > `ap` xmlGetWidget xml castToEntry "passwordEntry" > `ap` xmlGetWidget xml castToEntry "repeatEntry" > > Tillmann
Thanks! The problem is i really like specifying which fields in the record are assigned what. It's pretty easy to mess things up and for example assign the password-entry to the signature-field using your examples. Is there nothing I can do to xmlGetWidget to evaluate the actions when assigning? return UserPanel { userPanelSignatureEntry = *magic* xmlGetWidget xml castToEntry "signatureEntry", userPanelPasswordEntry = *magic* xmlGetWidget xml castToEntry "passwordEntry", userPanelRepeatEntry = *magic* xmlGetWidget xml castToEntry "repeatEntry"} _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe