T구체 타입은 호출 지점에서 결정
컴파일러는 구체 타입이 약속한 동작을 제공할 때만 해당 메서드와 구현을 연다.
읽는 순서“T가 무엇인가?”보다 “본문이 어떤 동작을 쓰며, 그 동작을 어느 bound가 증명하는가?”를 먼저 본다.
T구체 타입은 호출 지점에서 결정
T: Display + PartialOrd출력과 비교 동작을 컴파일 시 확인
bound 미충족 타입은 호출 전에 컴파일 오류
fn notify<T: Summary>(&T)impl Summary는 단순한 매개변수에서 같은 제약을 간결하게 쓴다.
impl<T: Display + PartialOrd> Pair<T>두 trait를 모두 구현한 T에서만 비교·출력 메서드가 생긴다.
impl<T: Display> ToString for TDisplay를 구현한 모든 타입이 ToString 구현을 얻는다.
구현 가능 경계trait와 type이 모두 외부 crate 소유면 직접 구현할 수 없다. coherence가 구현 충돌을 막는다.