Polymorphism
char* ptr1; struct timeval* ptr2;char** ptr3;…return1st(ptr1,ptr2); return1st(ptr2,ptr3)
Both calls match the previous function declaration
This is solved (basically) by giving return1st a richer type and instantiating it at every call site
- (c ref?, d) ?? c ref?
- (e ref?, f) ?? e ref?
?a.??.?b.??.(a ref?, b) ?? a ref?