What part is misleading? If you had mistyped interface{} as
*interface{} (or io.Reader as *io.Reader), which is a common mistake
among new Go programmers, the error makes clear that the pointer is
the issue. If you'd used plain interface{} as the return type, the
return statement would be legal.
Russ