Switched to hash consing with weak pointers rather than stable names