[racket-dev] Blame and re-provided bindings

From: Stevie Strickland (sstrickl at ccs.neu.edu)
Date: Fri Jan 14 14:53:12 EST 2011

On Jan 14, 2011, at 2:44 PM, Robby Findler wrote:
> as far as the contract library is concerned, but now I'm starting to
> think that that is not convenient enough. Instead, we should really
> default to 'provide f with the same contract it had before, as if the
> programmer had copied and pasted the contract' (so change the blame
> labels) instead of the more high-falutin' interpretation I had before.

To some extent, this is what the "user" label was supposed to signify.  That is, the negative blame stays "correct" (by our high-flautin' interpretation), but you also get additional blame that tells you if that value flowed to a different region of code that used it.  This latter information is often more precise, and is exactly the old negative information.  That is, the blame information you'd get when you don't consider simple reprovides as entering into the contract and reproviding with any/c.

Just to check, we are still printing out the "user" blame information when it differs from the negative blame, right?  (I know there's been work done on changing the contract messages, but I haven't tried it out yet.)


Posted on the dev mailing list.