Я люблю Haskell и время от времени решаю задачи на этом языке, но до этого как-то получалось так, что я выбирал задачи, в которых обходился без монады ST. Сегодня я попробовал решить 686D - Кай и снежинки и мне понадобилась монада ST, чтобы представить граф в виде списков смежности вместо списка родительских вершин. Конечно же, все, что я сделал, работало нормально на моем компьютере, но когда я попытался отправить решение на проверку, CF сказал, что у меня ошибка компиляции:
Can't compile file:
program.hs:2:1:
Control.Monad.ST: Can't be safely imported!
The module itself isn't safe.
program.hs:3:1:
Data.Array.ST: Can't be safely imported!
The module itself isn't safe.
Вот та самая попытка: 18723133
Что нужно сделать, чтобы оно заработало? Как пользоваться ST или чем-то аналогичным? Почему ST считается небезопасной?