fmt.Printf("%q", []byte{0xed, 0xa3, 0xbe})
prints
"\ud8fe"
This string literal is rejected by the Go compiler with the error
"invalid Unicode code point in escape sequence"
The fix I think, as suggested by rob on the mailing list,
is to reject surrogate characters in utf8.DecodeRuneInString.