code: def collapsedintervals(table, start='start', stop='stop', key=None):
      
      
      if key is None:
          table = sort(table, key=start)
          for iv in _collapse(values(table, (start, stop))):
              yield iv
      else:
          table = sort(table, key=(key, start))
          for k, g in rowgroupby(table, key=key, value=(start, stop)):
              for iv in _collapse(g):
                  yield (k,) + iv
docs: Utility function to collapse intervals in a table. 
      
      If no facet `key` is given, returns an iterator over `(start, stop)` tuples.
      
      If facet `key` is given, returns an iterator over `(key, start, stop)`
      tuples.