Go's complimentary Reader and Writer interfaces

To help us appreciate how Go encourages composition, let's look at Go's complimentary Reader and Writer interfaces:

type Reader interface {
Read(p []byte) (n int, err error)
}

type Writer interface {
Write(p []byte) (n int, err error)
}

What can we observe from these interface declarations? Simplicity.  

They both have a single method that takes a single parameter and returns a single result (along with the requisite error value).

What does that buy us? For starters, we can compose broad interfaces by simply adding simpler interfaces.