func (k *Key) root() *Key {
	for k.parent != nil {
		k = k.parent
	}
	return k
}
func (k *Key) root() *Key {
	for k.parent != nil {
		k = k.parent
	}
	return k
}
func ( k * Key ) root ( ) * Key { for k . parent != nil { k = k . parent } return k }
// root returns the furthest ancestor of a key, which may be itself.
root returns the furthest ancestor of a key which may be itself .