Vermeiden von IORefs in reinem Code
Ich bemerkte, dassData.UnionFind Verwendet die E / A-Monade, um Zeiger über IORefs bereitzustellen. Ich stelle mir vor, jeder ruft glücklich anunsafePerformIO
wenn es lokal in reinem Code verwendet wird, da die Datenstruktur so gut verstanden ist, aber ..
Gibt es einen kanonisch saubereren Ansatz für solche Datenstrukturen? Vielleicht ein Wrapper um IO, der das Unvermeidliche machtunsafePerformIO
Weniger unsicheres "Schauen" durch Verbot der meisten E / A-Operationen?