docs: def overlap(r1: 'Rectangle', r2: 'Rectangle'):
          """
          Overlapping rectangles overlap both horizontally & vertically
          """
          h_overlaps = (r1.left <= r2.right) and (r1.right >= r2.left)
          v_overlaps = (r1.bottom >= r2.top) and (r1.top <= r2.bottom)
          return h_overlaps and v_overlaps