Можешь объяснить назначение associated types в протоколах Swift и привести пример того, как они обеспечивают обобщённое поведение? — ДейлиПреп