Fn, FnMut, FnOnce
클로저와 함수 포인터를 모두 받을 수 있게 트레이트 바운드로 표현합니다. 호출 방식에 따라 가장 덜 제한적인 트레이트를 고릅니다.
impl Fn 또는 Box<dyn Fn>
반환할 구체 타입을 숨기려면 impl Trait를 쓰고, 여러 종류를 담아야 하면 트레이트 객체를 사용합니다.