Unikanie IORef w czystym kodzie
zauważyłem toData.UnionFind używa IO monad do dostarczania wskaźników za pośrednictwem IORefs. Wyobrażam sobie, że wszyscy radośnie dzwoniąunsafePerformIO
gdy używa się go lokalnie w czystym kodzie, ponieważ struktura danych jest tak dobrze zrozumiana, ale ..
Czy istnieje kanoniczne czystsze podejście do takich struktur danych? Być może opakowanie wokół IO sprawia, że jest to nieuniknioneunsafePerformIO
mniej niebezpieczne „szukanie” poprzez zakaz większości operacji IO?