Should this be considered a bug in the Enum implementation?

>>> class Foo(enum.Enum):
...   A = True
...   B = 1
...   C = 0
...   D = False
... 
>>> Foo.A
<Foo.A: True>
>>> Foo(True)
<Foo.A: True>
>>> Foo(1)
<Foo.A: True>

Seems to me like it should store and compare both type and value.

Paul