What is the difference between Go's interfaces and concrete types?