code: def _merge_wf_outputs(new, cur, parallel):
      
      new_ids = set([])
      out = []
      for v in new:
          outv = {}
          outv["source"] = v["id"]
          outv["id"] = "%s" % get_base_id(v["id"])
          outv["type"] = v["type"]
          if "secondaryFiles" in v:
              outv["secondaryFiles"] = v["secondaryFiles"]
          if tz.get_in(["outputBinding", "secondaryFiles"], v):
              outv["secondaryFiles"] = tz.get_in(["outputBinding", "secondaryFiles"], v)
          new_ids.add(outv["id"])
          out.append(outv)
      for outv in cur:
          if outv["id"] not in new_ids:
              out.append(outv)
      return out
docs: Merge outputs for a sub-workflow, replacing variables changed in later steps.
  
      ignore_ids are those used internally in a sub-workflow but not exposed to subsequent steps