Proposal: Interfaces for more generic code

Can’t the same thing happen that happens when duck typing? The compiler is able to determine the return value of a type at compile time, so is there any reason it couldn’t do the same with abstract as well as this potential interface type?