Andrei: > I don't see anything remotely clever in the solution I suggested.
I am not clever enough... > At some point it's worth starting to use the language to devise solutions > to problems instead of inventing a new feature for any problem that > comes about. That was not a new unexpected problem, it was an example of missing brick of the D DbC. It's like you remove preconditions: then something is missing in the frame. Loop invariants and loop variants are minor feature of DbC and they probably may be spared in D (and when necessary loop invariants may be implemented manually with a call to a pure function), but prestate access is something I/you need often when you want to use DbC, it's not there in Eiffel and C# for sport. Your view of how to design a language is probably different from mine. Bye, bearophile
