contract interface I0 = entrypoint f : () => int contract interface I1 : I0 = entrypoint f : () => int entrypoint something_else : () => int main contract C = entrypoint f(x : I1) = x.f() // Here we should know that x has f