package fixture // Not compiled. The interface's implementation may live in another package and // say anything. A method selected only by its name is no better. type messenger interface { Message() string } type local struct{} func (local) Message() string { return "a recorded sentence" } func viaInterface(w int, m messenger) { jsonError(w, 400, m.Message()) } func viaUnknown(w int, x external) { jsonError(w, 400, x.Message()) }