первая - он позволял писать сложные инстансы для каких-то генериков
вторая - он позволял отделять типы, для которых ты намеренно включил возможность вывода от остальных
и позволял требовать в нужных местах, чтобы только намеренно включенные использовались