Sometimes you want your Go function to accept either a string or a slice of bytes, at which point the user then has to convert whichever one they have to the version you chose:
func Process(s string) { /* … do stuff with s … */ }
// …
var someBytes = []byte(/* … */)
pkg.Process(string(someBytes))