def tdiff_unordered(tree,&block)
      return enum_for(:tdiff_unordered,tree) unless block

      # check if the nodes differ
      unless tdiff_equal(tree)
        yield '-', self
        yield '+', tree
        return self
      end

      yield ' ', self

      tdiff_recursive_unordered(tree,&block)
      return self
    end
def tdiff_unordered(tree,&block)
      return enum_for(:tdiff_unordered,tree) unless block

      # check if the nodes differ
      unless tdiff_equal(tree)
        yield '-', self
        yield '+', tree
        return self
      end

      yield ' ', self

      tdiff_recursive_unordered(tree,&block)
      return self
    end
Finds the differences between `self` and another tree, not respecting
 the order of the nodes.

 @param [#tdiff_each_child] tree
   The other tree.

 @yield [change, node]
   The given block will be passed the added or removed nodes.

 @yieldparam [' ', '+', '-'] change
   The state-change of the node.

 @yieldparam [Object] node
   A node from one of the two trees.

 @return [Enumerator]
   If no block is given, an Enumerator object will be returned.

 @since 0.2.0