You make a good point, but there's one problem I have with this.I'm looking at this as a library writer. I can write in-contracts with assertions, but I would not feel comfortable with only assertions, since I know they will not get compiled in a release build of the library.
Contracts and invariants also are not compiled in a release build of the library.
-Steve
