
Michael T. Richter wrote:
It looked to me like there were people arguing about whether the "x" returned from one action was going to be used in the next action.
Let me try and rephrase the question. :)
[rephrase]
Yes, and that's an important constellation your problem description does not consider. Take the code doStuff(): if checkPossible( ?? ): x <- A if x then B else C else: exception "Preconditions not met" What should be put as argument into checkPossible? checkPossible([opA, opB, opC])? What if x happens to be always true and C is never run? What if B is possible if and only if C is not? Sequencing actions is not just putting them in a row, but also feeding the results of one action to the next ones. You have to restrict this in some way to make your goal possible.
And can it be done somehow in Haskell?
Most likely, and Haskell even tells you when your approach doesn't work without further specification :) Regards, apfelmus