Angle's API has a number of inconsistencies:
- It supports * and *= for Angle, double, and int in any combination (though Angle only through implicit conversion in Python).
- It supports += and -= for Angle, double and int, but + and - only for Angle in C++.
- It supports += and -= only for Angle in Python.
- It supports * for Angle directly, but *=, +=, and -= only through implicit conversion to double.
- It supports / for double and int directly in C++, but supports int only through implicit conversion in Python.
- It supports comparison operators between Angle and Angle, double, or int in Python, but only with other Angle objects in C++.
- AngleUnit can be tested for inequality in Python but not C++.
- Expressions like degrees * 42.0 are allowed in Python but not C++.
The API should be reviewed with other DM programmers for which of these operations are desirable, and the code updated with more coherent handling.