Don't rely on addFinalizer, use safer mkWeakIORef #140