если в рантайме работает совершенно другая программа а не та которую я запускал, то зачем ссылочная прозрачность?
они бред несут. короче. прикол тут в том что ссылочная прозрачность в хаскеле первична. т.е. ты не делаешь монаду чтобы была ссылочная прозрачность. ты делаешь монаду чтобы монадичные вещи работали в хаскеле.
короче представь у тебя первична иммутабельность, неявный ленивый флоу и еще пара трюков. и в этом мирке ты должен
1. делать явным флоу
2. развязать флоу функций String->String которые например читают из файла так чтобы они притворились не зависящими от параметров, тоесть твоя функция отдает функцию которая должа вызываться неким World и отдавать некоторый World.
3. ты замечаешь что это не особо накладно и работает
4. профит!