#!/usr/bin/env python
# I, Danny Milosavljevic, hereby place this file into the public domain

from memoizer import memoize
class Symbol(object):
    def __init__(self, name):
        self.name = name
    def __hash__(self):
        return(hash(self.name))
    def __eq__(self, other):
        return(other is self)
    def __repr__(self):
        return("intern(%r)" % self.name)

@memoize
def intern(name):
    return(Symbol(name))

if __name__ == "__main__":
    a = intern("foo")
    b = intern("foo")
    assert(a is b)
    