def next_with_clock
        return nil if @occurrences.length == 0
        
        obj, time = @occurrences.min
        if Array === obj && obj[0] == :clock
          sub_obj, relative_time = obj[1].next
          [obj[1], [sub_obj, unscale_relative_time(relative_time)]]
        else
          [self, [obj, unscale_time(time)]]
        end
      end
def next_with_clock
        return nil if @occurrences.length == 0
        
        obj, time = @occurrences.min
        if Array === obj && obj[0] == :clock
          sub_obj, relative_time = obj[1].next
          [obj[1], [sub_obj, unscale_relative_time(relative_time)]]
        else
          [self, [obj, unscale_time(time)]]
        end
      end
returns [clock, [obj, relative_time]]