'Construct a new named symbol.'

def __new__(self, name, doc=None, canonical=None):

    assert isinstance(name, compat.string_types)
    if (canonical is None):
        canonical = hash(name)
    v = int.__new__(_symbol, canonical)
    v.name = name
    if doc:
        v.__doc__ = doc
    return v
