* don't recreate COMMUTATIVE the other way * add shl and add passing test * fix tests and move assignment to __new__ * that can stay there * happy mypy