Explain the use of Go's embedded types for code reuse?