>>> I think this is much more elegant: >>> >>> # int foo(int a) { >>> # in { >>> # assert(a>2); >>> # } >>> # >>> # return a-1; >>> # } >> >> I have to disagree. That suggests that 'in' is a scope within the body, >> which would have access to its local variables. Of course, it shouldn't. > > If you make 'in' clauses 'pure' (which they are, conceptually), it works > fine.
But 'in' still needs read-access to the actual parameters and every visible symbol in a scope shallower than that of the function. > I agree with Pete, I think that's a greatly superior syntax to what we > have now. Then I assume you still want to restrict the precondition to being the first element in the body? Because putting it in there suggests that it may appear anywhere a statement can. -- Michiel Helvensteijn