             wallclock = actual.wallclock
             posix = wallclock - actual.offset
             say "rule - #{iso8601 wallclock} #{iso8601 posix}"
-            table.push posix, wallclock, subsequent.entryIndex, subsequent.ruleIndex
+            gather posix, wallclock, subsequent.entryIndex, subsequent.ruleIndex
+            # TODO Does this ever get called?
             if actual.wallclock > subsequent.wallclock
               return [ startYear, actual ]
           else
             wallclock = actual.wallclock
             posix = wallclock - actual.offset
             say "rule - #{iso8601 wallclock} #{iso8601 posix}"
-            table.push posix, wallclock, subsequent.entryIndex, subsequent.ruleIndex
+            gather posix, wallclock, subsequent.entryIndex, subsequent.ruleIndex
 
       # If no rules, return the entry as the subsequent interval.
       if not entry.rules

      die interval

# Remember that we have pseudo-POSIX for wallclock.
shifts = (say, data, name, startYear) ->
  table = []
  # Some time well in the future, for ranges.
  future = new Date(Date.UTC(new Date().getUTCFullYear() + 50, 0, 1))

            continue
          # Huzzah! Add an entry to our table.
          say "rule - #{iso8601 actual.wallclock} #{iso8601 actual.posix}"
          gather actual.posix, actual.wallclock, actual.entryIndex, actual.ruleIndex
        # If we had to make our own initial standard rule record, we feed that
        # to the next zone entry as the subsequent interval.
        return [ year, preceeding ] if preceeding
