>Theoretically legal... > > void func() > //in/out contracts > body with (E) { //with replaces normal block > > } This seems sensible. Multiple with seems like a recipe for confusion and member name clashes.