Was ist der Unterschied zwischen unsafeDupablePerformIO und accursedUnutterablePerformIO?

Ich war in der eingeschränkten Abteilung der Haskell-Bibliothek unterwegs und fand diese beiden abscheulichen Zaubersprüche: {- System.IO.Unsafe -} unsafeDupablePerformIO :: IO a -> a unsafeDupablePerformIO (IO m) = case runRW# m of (# _, a #) -> a {- Data.ByteString.Internal...