On Jan 15, 2011, at 12:32 PM, Robby Findler wrote:
> But I don't think we should think of it as 'changing the positive
> blame information' -- I agree anything phrased like that sounds wrong.

But I think you _do_ want this in some cases, where you're reproviding 
internally contracted things to an outside world, and don't want specifics of 
your implementation to leak.  Again, this seems to be what you'd actually want 
for redex, right?  You're reproviding things you've contracted internally (to 
make sure you are using them appropriately in your implementation) to the 
outside world, and at this point there's no reason for the outside world to 
know that the function `redex-mangle-names' is defined in the module contained 
in the file $PLTHOME/collects/redex/private/mangler/nomnomnom.rkt; it'd be 
better for the user if the blame was just the current blame you'd get if it 
were contracted in the external interface, or maybe even something like 
`(collection redex)'.

> Instead, I think we should be thinking "what is (provide f) shorthand
> for?". In the past I argued it was shorthand for "(provide/contract [f
> any/c])" but now I think that maybe we should be thinking of it as
> "(provide/contract [f
> <the-contract-f-was-imported-with-or-any/c-if-there-wasn't-one>])".
> 
> Does that make more sense?

I do understand what you're saying.  Whether or not we made that change (which 
pretty much puts us back in the old negative blame calculation world), I'm just 
wondering whether we also want an operation like that I've described above for 
use in collects, PLaneT packages, and the like.  However, that one really would 
need to be explicit, since you wouldn't want it to happen all the time.  (And 
to be fair, I'd still argue it'd be the right thing for the re-exporting that 
you're describing for redex, where you're re-exporting internal values to the 
outside world for use.)

Stevie
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to