Use mkWeakIORef instead of addFinalizer