Как избежать IORefs в чистом коде

Я заметил, чтоData.UnionFind использует монаду IO для предоставления указателей через IORefs. Я думаю, что все радостно звонятunsafePerformIO при локальном использовании в чистом коде, так как структура данных так хорошо понятна, но ..

Есть ли канонический более чистый подход к таким структурам данных? Возможно, обертка вокруг IO, которая делает неизбежнымunsafePerformIO менее опасный & quot; смотрящий & quot; Запрещая большинство операций ввода-вывода?

Ответы на вопрос(1)

Ваш ответ на вопрос