I read that to mean that the semantics don't have edge or ad-hoc cases.
Also in Python, True and False are a blessed instances of 1 and 0 with their logical operators overidden. So True + True == 2, but True is 1 => False.
You can also search #watjs for more example of 'unclean' semantics.
[0]: https://docs.python.org/3.4/reference/compound_stmts.html#ex... [1]: https://bugs.python.org/issue24321#msg244357
You can easily have booleans as a completely different type, and yet avoid stuff like: `1 if boolean else 0`...
In Haskell, for example, `True + True` and `True == 1` are compile errors (unless you defined wacky Num instances), and the boolean/int "identity" is simply handled by `fromEnum` (which works on any Enum, not only Bool)
1 == fromEnum True
0 == fromEnum False