# File lib/edi4r/diagrams.rb, line 547
    def next!
      loop do
        node = self.node; r = nil
        if node.is_a? TNode and @down_flag
          @down_flag = false
          r = self.down!
        end
        break if r
        # Down not applicable or available; now try "right!"
        break if r = self.right!
        # At end of this branch - try to move up:
        break if r = self.up!
        # Already at top level!
        return nil
      end
      self
    end