Ensure free operands fn is safe to call multiple times