I wonder if these functions should end up in Base at some point.