package b import "fmt" type Sayer interface { Say() string } type Casual struct{} func (p Casual) Greet(s interface{Sayer}) string { return fmt.Sprintf("Hey %s!", s.Say()) }