my impression is that usually you use an `AssertionError` to validate internal logic (this internal function will always be called with a list...etc.).  (and that's why if you run something with `-O` it removes assertion errors - they are supposedly only checks for the programmer). That's a good point on the message, I'll change it.