interface Animal { name() string } struct Cat {} fn foo(a Animal) {} fn main() { foo(Cat{}) }