The message shows up at the top, but the message also includes the whole contract with all the other messages. Error messages that include
too much information are frustrating, because I have to scan through the message to look for the important bit. The extra information has a cost. For instance, this is what my REPL looked like after running Robby's program:

Since the message is too big to fit in the REPL panel, I have to scroll around to find the "f: contract violation; must be even" and "f: contract violation; must be larger than five" parts of the message. And the message
doesn't say what the actual value of x was!
I think when a precondition of an ->i contract is violated, the message should just include the precondition description and the values of the parameters the precondition depends on. The whole contract shouldn't be printed - I'd prefer it either be omitted entirely or shortened with ellipses. So I think that program should produce output like this:
f: contract violation;
must be larger than 5
x: 1
in: a precondition of (->i ...)
contract from: (anonymous-module m)
blaming: anonymous-module
(assuming the contract is correct)
at: unsaved-editor:6.5
f: contract violation;
must be even
x: 7
in: a precondition of (-> i ...)
contract from: (anonymous-module m)
blaming: anonymous-module
(assuming the contract is correct)
at: unsaved-editor:6.5