class _Ternary(object):
    """Internal class.  Don't instantiate!"""

def __init__(self, value):
    self.value = value
ternary_0 = _Ternary(0)
ternary_1 = _Ternary(1)
ternary_2 = _Ternary(2)

def ternary(value):
    pass
Is it an 'original sin' to do init work in __new__? If so, how best to handle run once init for singletons?