code: func (t *Mutable) get(key []byte) (*treapNode, *treapNode) {
  	var parent *treapNode
  	for node := t.root; node != nil; {
  		// Traverse left or right depending on the result of the
  		// comparison.
  		compareResult := bytes.Compare(key, node.key)
  		if compareResult < 0 {
  			parent = node
  			node = node.left
  			continue
  		}
  		if compareResult > 0 {
  			parent = node
  			node = node.right
  			continue
  		}
  
  		// The key exists.
  		return node, parent
  	}
  
  	// A nil node was reached which means the key does not exist.
  	return nil, nil
  }
docs: // get returns the treap node that contains the passed key and its parent.  When
  // the found node is the root of the tree, the parent will be nil.  When the key
  // does not exist, both the node and the parent will be nil.