目前 LVar 对象与符号的打印相同;它们应该要么以不可读的形式打印,要么以读者可以将其读回并获取 LVar 的方式打印。附带的补丁使它们可以以 LVar 的方式读入。
然而,(read-string (pr-str lv)) 与 lv 不相等,因为 .equals 方法的实现依赖于它们的字符串 :name 对象是相同的?- 如果一个 LVar 是由使用 str 的 lvar 函数创建的,另一个则由使用 String/intern 的 read-string 创建,则它们将不会相同。
似乎可以说,LVars 在通过字符串发送后不能比较是否相等,但这很尴尬,也很不愉快。我们可以改定义 LVars 以 = 而不是 identical? 与其名称进行比较,但 David 对该更改的性能影响表示担忧。