incluso traits pueden tener parametros que definen tipos genericos fn print_debuggable<T: Debug>(val: T) { println!("{:?}", val); } fn print_debuggable<K: Debug, T: Debug + Clone>(val1: K, val2: T) { val2.clone(); println!("{:?}, {:?}", val1, val2); } fn print_debuggable<K, T>(val1: K, val2: T) where K: Debug, T: Debug + Clone {}