code: func (xft *XFastTrie) predecessor(key uint64) *node {
  	if xft.root == nil || xft.max == nil { // no successor if no nodes
  		return nil
  	}
  
  	if key >= xft.max.entry.Key() {
  		return xft.max
  	}
  
  	if key < xft.min.entry.Key() {
  		return nil
  	}
  
  	n := xft.layers[xft.bits-1][key]
  	if n != nil {
  		return n
  	}
  
  	layer, n := binarySearchHashMaps(xft.layers, key)
  	if n == nil && layer > 1 {
  		return nil
  	} else if n == nil {
  		n = xft.root
  	}
  
  	if isInternal(n.children[0]) && isLeaf(n.children[1]) {
  		return n.children[1].children[0]
  	}
  	return n.children[0]
  }
docs: // predecessor will find the node equal to or immediately less
  // than the provided key.