Dealing with difficult library upgrades has been a recurring task in my career as a software developer. This week I got a new tool into my toolbox for handling dependency conflicts. I was working on a Scala project. It heavily uses a library that is no longer maintained. We would like to migrate to a newer library. It would nice to migrate piece-by-piece: that would make both development and testing much easier. However, both the libaries depend on the different version of the same library. O...