struct Dog { breed string } fn (d Dog) speak() { println('dog.speak()') } fn (d Dog) name() string { return 'old gray' } interface Speaker { name() string speak() } interface Speak2er { speak() name() string } fn perform_speak(s Speaker) bool { s.speak() return true } fn test_perform_speak() { d := Dog{} assert perform_speak(d) }