> -- Илья Ермаков писал(а):
> Все локализованные в том или ином модуле с тем или иным временем жизни.

Нифига они не локализованы. Модуль локализует только область видимости. Да, это может помочь избежать части проблем, типа упоминавшегося только что перекрытия с локальными переменными. Но суть зла в виде "глобальности" - остается. Вы можете даже упрятать все в функции get/set и все равно это не решит основной проблемы.

> -- Илья Ермаков писал(а):
> Если Вам не даёт спать идея вообще отказа от состояний - то это проблемы ФП-шников. Нефизично исключать важное понятие, присутствующее в реальном мире. В мат. играх - конечно, можно. Занятно, интересно, иногда познавательно.

Не, состояние само по себе здесь не причем. Локализуйте состояние и делайте с ним что хотите. Проще всего это сделать по примеру ФП-шников - в аргументах и результате. Если это несовместимо с реальной жизнью - да, можно идти на компромиссы, главное понимать, что это компромисс.