If I understand correctly, "positive blame" refers to servers and "negative blame" refers to clients. I think this means:
(define/contract (add-10 x) (-> number? number?) "oops")
(add-10 7) ; Call-A
`add-10` accepts a number and promises to return a number, but it actually returns a string. Therefore:
Call-A: positive blame on add-10, no negative blame
Call-B: negative blame on the (add-10 "oops") call, no positive blame.
Do I have this right, or does every exception carry both positive and negative blame?