Изменения в новых версиях / Swift 4.1

Рекурсивные ограничения связанных типов

Пример из полной версии. Она продаётся в магазинах приложений: