Explicit (and implicit) renaming macros in Chicken
wiki.call-cc.org
wiki.call-cc.org
Then renaming is just one possible implementation. Pointer graphs are another—but that's just malloc playing the role of gensym. The coolest of all would be something along the lines of DeBruijn indexes: determinism and normal forms ftw!