[racket-dev] Blame and re-provided bindings

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Jan 15 13:25:43 EST 2011

On Sat, Jan 15, 2011 at 12:19 PM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
>
> On Jan 15, 2011, at 1:12 PM, Robby Findler wrote:
>
>> do you think this change I'm suggesting (act as if the contract were written a second time) is the right behavior
>
>
>
> 1. My personal preference is to ask programmers to re-provide identifiers with explicit contracts that are ideally stated and specified in a separate 'contracts.rkt' file per collects/project basis. I.e., the current world is my preference.

Writing programs like this means that what I'm talking about won't
really have an effect either way.

>
>
> 2. I am not strictly opposed to your suggestion because I see value in your reasoning. If we go with re-providing the identifier with its contract, I would like to see the blame assignment shifted to the re-exporting module.

Of course.

> This does leave us with the "Carl" question:
>
>  who is going to be blamed when module C imports f from A and (re-provided from) B?

As I pointed out in my reply to Stevie, this is not a new question and
the answer has to come for either design choice.

Robby


Posted on the dev mailing list.