Как функция условного соответствия протоколам (conditional conformance) в Swift позволяет обобщённым типам условно принимать требования протоколов в зависимости от их параметров типа? — ДейлиПреп