[plt-scheme] attaching object names to values
I think there isn't one, but if you see how to make one, please let me know.
FWIW, provide/contract does a better job than just `contract' and I
believe would do what you want.
Robby
On Fri, Dec 5, 2008 at 12:44 PM, Sam TH <samth at ccs.neu.edu> wrote:
> The contract system uses the `object-name' of predicates to print out
> their names in error messages. But this can be useless if the
> predicate itself is wrapped in a contract. This program shows the
> problem pretty well:
>
> #lang scheme
>
> (define x? (contract (-> any/c boolean?) (lambda (x) #t) 'here 'there))
>
> (define my/c (-> x? x?))
>
> (contract my/c 5 'foo 'bar)
>
>
> It gives a contract error referencing "unsaved-editorx:y:z", instead
> of "x?". Unfortunately, there seems to be nothing that I can do to
> change the object-name of the contract value (except eta-expand).
> Notably, the inferred-name syntax property doesn't work, since the
> actual lambda expression isn't available (it's in the contract
> library). Is there a solution here I'm missing?
>
> Thanks,
> --
> sam th
> samth at ccs.neu.edu
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>