убрал объявление глобальной переменной; добавил вызов math.randomseed, которого так не хватало для math.random
завернул все внешние функции на local переменные
pprint избавился от постоянного подключения env
добавил string.format и поправил в string M.apply_patch+M.find, которые ломали встрренный string.find
не вывожу в стектрейсе позицию без имени ":0"
уменьшил оверхед использования метатаблиц в oop.simple
обозвал все классы полными именами
явное подключение debug; поправил оформление нескольких комментариев
pprint корректно работает и с выключенной буферизацией
масштабные переделки по избавлению от ООП в угоду производительности