연관 타입
구현마다 하나의 결과 타입을 정하고 싶다면 type Item처럼
트레이트 안에 이름을 둡니다.
기본 제네릭 타입
대부분은 Self로 충분하지만, 필요할 때만 다른 오른쪽
피연산자를 허용합니다.
완전 정규 문법
같은 메서드 이름이 여럿이면
<Type as Trait> 형태로 어느 구현인지 지정합니다.
슈퍼트레이트와 뉴타입
기능을 조합하거나 고아 규칙을 우회해야 할 때 래퍼 타입으로 우리 쪽 구현 지점을 만듭니다.