           # make sure we have a bit of room before we include a day.
           future_date = new Date(day_date.getTime() + (typical_interval / 2))
           if future_date.getUTCMonth() == month_date.getUTCMonth()
-#             console.log("  push #{month_date} / #{month_date.toUTCString()} ~ (#{month_date.getUTCDate()} -> #{day}) = #{day_date}")
             dates.push(day_date)
         return dates
 
-      # FIXME Use a list comprehension?
-      day_dates = _.flatten(month_dates.map((date) -> days_of_month(date)))
+      day_dates = _.flatten(days_of_month(date) for date in month_dates)
 
       all_ticks = _.invoke(day_dates, 'getTime')
       # FIXME Since the ticks are sorted, this could be done more efficiently.

      start_factor = Math.floor(data_low / interval)
      end_factor   = Math.ceil(data_high / interval)
      factors = arange(start_factor, end_factor + 1)
      ticks = factors.map((f) -> return f * interval)
      return ticks

    toString: () ->

      super()

      # FIXME Validate that the scales don't overlap.
      @min_intervals = _.invoke(@scales, 'get_min_interval')
      @max_intervals = _.invoke(@scales, 'get_max_interval')

    get_min_interval: () ->
      return @min_intervals[0]
