mflatt
2018-10-30 11:47:35

Yes, that’s right. And just to be clear: > (for/list ([s (in-list (instance-variable-names l))]) (define str (symbol->string s)) (if (symbol-unreadable? s) (eq? s (string->unreadable-symbol str)) (eq? s (string->symbol str)))) '(#t #t #t)


mflatt
2018-10-30 11:49:20

Well, there can also be unreadable symbols due to macro expansion. But there shouldn’t be anything but interned and unreadable symbols as long as a macro doesn’t use gensym.


samth
2018-10-30 12:48:25

@mflatt Are all unreadable symbols “interned” in that sense, or only some of them? And if only some, is there a predicate to tell?


mflatt
2018-10-30 13:59:27

All of them.


samth
2018-10-30 14:37:02

@cadr I think this suggests that our problem is just serialization of unreadable symbols (which we are currently writeing like regular symbols)