Re: [racket-users] Identifier equality of identifiers stashed in preserved syntax properties

2016-10-27 Thread Alexis King
As a small followup to this, I managed to come up with the following hacky workaround, which seems to be working alright so far. Specifically, it’s a function that converts arbitrary preservable values into expressions that evaluate to themselves: (define preservable-property->expression (ma

Re: [racket-users] Identifier equality of identifiers stashed in preserved syntax properties

2016-10-25 Thread Alexis King
> On Oct 25, 2016, at 17:27, Ryan Culpepper wrote: > > Consider that (eval (list 'quote #'+)) also evaluates to a symbol, for about > the same reason. Yes, this does make sense, even if I couldn’t put it quite so nicely. :) > Try local-expanding either of these terms instead: > > #`(let-synt

Re: [racket-users] Identifier equality of identifiers stashed in preserved syntax properties

2016-10-25 Thread Ryan Culpepper
On 10/25/2016 08:04 PM, Alexis King wrote: That makes sense; thank you for your quick reply. It might be possible to do something like what you describe, but I do have a little more context that makes this sort of tricky. I’m trying to not just store identifiers but also store prefab structs cont

Re: [racket-users] Identifier equality of identifiers stashed in preserved syntax properties

2016-10-25 Thread Alexis King
That makes sense; thank you for your quick reply. It might be possible to do something like what you describe, but I do have a little more context that makes this sort of tricky. I’m trying to not just store identifiers but also store prefab structs containing identifiers. The issue I’m running int

Re: [racket-users] Identifier equality of identifiers stashed in preserved syntax properties

2016-10-25 Thread Matthew Flatt
Putting identifiers in syntax properties causes them to be hidden from various scope and module-path-shifting operations. Probably, you're seeing the effect of hiding an identifier from path shifting (when an expanded module is compiled or when a compiled module is declared and instantiated in at a