# File lib/core/facets/array/arrange.rb, line 18
  def arrange
                array = uniq.sort_by { |e| Range === e ? e.first : e }
                array.inject([]) do |c, value|
                        unless c.empty?
                                last = c.last
                                last_value    = (Range === last  ? last.last   : last)
                                current_value = (Range === value ? value.first : value)
                                if (last_value.succ <=> current_value) == -1
                                        c << value
                                else
                                        first  = (Range === last ? last.first : last)
                                        second = [Range === last ? last.last : last, Range === value ? value.last : value].max
                                        c[-1] = [first..second]
                                        c.flatten!
                                end
                        else
                                c << value
                        end
                end
        end