
On 24 Feb 2005, at 17:33, John Goerzen wrote:
On Thu, Feb 24, 2005 at 05:22:40PM +0000, Jules Bean wrote:
On 24 Feb 2005, at 16:42, John Goerzen wrote:
... do if cond then x <- textInputField ... else () ... submit ...
Well, two problems there... first, the scope of the x doesn't reach to the submit. Second, there's a type issue. So I thought maybe I could figure out something like this:
Well, how could this possibly work (that is, how could 'x' be visible at the point of submission)? If you go down the 'else' branch, what value should x have?
I'm assuming I would have two different calls to submit, one for the case where cond is true (that includes x), and one for the case where cond is false (that omits it).
Well saying that makes me think that the submit itself should be in the branches of the if ... then ... else ...
Once you know what value x is supposed to have down the else branch then you will be able to do something like:
x <- if cond then textInputField ... else return ...
but I have to return something with the same type as textInputField, and the only things with that type are other input fields. I don't want something else there. I want nothing there.
Well, that was a simplified example. You could replace textInputField with do { y <- textInputField ; return SomeComplexExpressionUsingY }. It may be that you want to use a Maybe type (as you suggested in your original mail), or perhaps an Either type for the two alternatives. Jules