Class validators

Ohh, I wasn't asking you to change `cmp` to `0`, I was asking why you couldn't just to the interpolation in `__init__` rather than doing it in` __call__`, but I just read the docstring more carefully and it makes sense now. Sorry for the misunderstanding.

`cmp` was better than `0`, no doubt. But `cmp` is typically used for comparator functions in the Python builtins. So how about `other` instead?