code: func getKey(key interface{}) (Key, rune, error) {
  	switch t := key.(type) {
  	case Key:
  		return t, 0, nil
  	case rune:
  		return 0, t, nil
  	default:
  		return 0, 0, errors.New("unknown type")
  	}
  }
docs: // getKey takes an empty interface with a key and returns the corresponding
  // typed Key or rune.