runtime defines hasprefix(string, string) bool in string.go and hasPrefix(string, string) bool in type.go. They have identical implementations.
I do not know how they are used, but I imagine that either (a) one should be removed in favour of the other, or (b) document why both need to exist.