private Node<K, V> firstEquivalentGroup( GroupNode<K, V> group, Comparator<? super V> comp, V ref ) {
        Node<K, V> node = group.mRoot;
        Node<K, V> ret  = null;

        while( node != null ) {
            int c = comp.compare( ref, node.mValue );

            if( c < 0 ) {
                node = node.mGroupLeft;

            } else if( c > 0 ) {
                node = node.mGroupRight;

            } else {
                ret = node;
                node = node.mGroupLeft;
            }
        }

        return ret;
    }