Насколько безопасно `unsafePerformIO (newTVarIO 0)`?

Я заметил эту идиому в Data.Unique :

uniqSource :: TVar Integer
uniqSource = unsafePerformIO (newTVarIO 0)
{-# NOINLINE uniqSource #-}

Гарантированно ли он запускается только один раз?

11
задан György Andrasek 25 December 2011 в 19:29
поделиться