I am totally with you. (I don't understand how you can satisfy Carl's scenario and keep it inexpensive but all the power to you.)
On Jan 15, 2011, at 12:42 PM, Stevie Strickland wrote: > 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 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev

