Just for my limited knowledge, I don't understand why he would need another library.
There are multiple i2c backpack libraries that use the same header file LiquidCrystal_I2C.h and they are not the same. They work differently, use different constructors, and are initialized differently.
There is no library that works with both of those constructors so you can't just mix and match constructors and initialization code.
The "LiquidCrystal_I2C" library that is available in the IDE library manager supports the constructor with 3 parameters and does not allow configuring the pin mappings.
It uses lcd.init() vs lcd.begin(cols, rows) to initialize the backpack and lcd.
fm's new liquidcrystal library package includes a "LiquidCrystal_I2C" i/o class that uses a constructor with 10 parameters and allows configuring the pin mappings. It uses lcd.begin(cols, rows) to initialize the backpack and lcd.
fm's library can work with any backpack as long as the pin mappings in the constructor match the pin mappings used by the backpack.
If the 10 parameter constructor and lcd.begin(cols, rows) is working for you, then at some point you must have installed fm's new LiquidCrystal library and the 3 parameter constructor would not work for you.
When messing with these libraries, the best thing is to use the examples that come with the library.
Trying to use examples found through searches may or may not work with the library you have installed.
Even if you get the code to compile for a LiquidCrystal_I2C library that has been installed, there is no guarantee that it will work with the backpack unless the i2c address and the pin mappings used by the library matches the pin mappings used by the backpack.
And all this is why I recommend using my hd44780 library as it will discover the i2c address and auto detect the pin mappings and comes with examples and a diagnostic sketch to help diagnose issues.
It also does not conflict with any installed LCD libraries nor require any manual changes to any existing installed libraries.