ns.Model.traverse

Есть удобный `ns.Model.invalidate`, но иногда хочется не только инвалидировать модели по какому-то признаку, но и сделать какое-то ещё действие.

Тесты не писал, так как непонятно на что именно они тут нужны.
Почему assert не делается в первую очередь?
Надо падать "как можно раньше" имхо )