15 Oct
2002
15 Oct
'02
8:31 p.m.
Also, this is a nested call to eval(), in a primitive, which can invoke an IO action and therefore re-enter Haskell without going through unsafePerformIO. Is that safe?
Yes, I think so. Most calls to IO actions from primitives are safe and I believe these ones are too. (In some ways, its the rarity of race conditions, etc. biting you that disturbs me most about Haskell finalizers: it's hard to remember to do the right thing when the wrong thing happens so rarely.)
So, are we now claiming that my patch *is* safe? (Never mind about IORefs, I'm talking about the implementation itself). Cheers, Simon