Java: "Sorry, but the developers of Peanut didn't declare it to implement the Crackable interface, even though it has all the relevant methods, so if you want to treat it like a nut your choices are write a wrapper class or call those methods using Reflections"
Ditto, but Rust's traits. God those are so fun. It's like duck typing a la Python but you can just slap whatever methods you want on a foreign type without worrying about breaking anything because they're only visible to the current crate (or other crates that import the Trait)