A simple solution would be to say that (<- exp) can only contain variables bound by do and leave the lambda out for now. This should make the execution order more or less clear and should cover most cases. If the need arose, it could still be extended to incorporate more things later. silvio