code: func typDesc(typ reflect.Type) string {
  	if typ.Kind() == reflect.Ptr {
  		if msgT, err := GetMessageType(typ); err == nil {
  			return fmt.Sprintf("a %s message", msgT.Name())
  		}
  	}
  	return fmt.Sprintf("a value of kind %q", typ.Kind())
  }
docs: // typDesc returns a human readable description of the type, for error messages.
  //
  // Recognize proto types and report their proto names. Otherwise just reports
  // typ's kind.