code: def combine_related(self, return_toplevel=True, poolsize=None,
                          size_cutoff=100):
          if self.related_stmts is not None:
              if return_toplevel:
                  return self.related_stmts
              else:
                  assert self.unique_stmts is not None
                  return self.unique_stmts
          unique_stmts = self.combine_duplicates()
          idx_map = self._generate_id_maps(unique_stmts, poolsize, size_cutoff)
          for ix1, ix2 in idx_map:
              unique_stmts[ix1].supported_by.append(unique_stmts[ix2])
              unique_stmts[ix2].supports.append(unique_stmts[ix1])
          self.related_stmts = [st for st in unique_stmts if not st.supports]
          logger.debug('%d top level' % len(self.related_stmts))
          if return_toplevel:
              return self.related_stmts
          else:
              return unique_stmts