for child in explicit_children:
assert isinstance(child.id_, int)
node.steps[child.id_] = make_node(child)
+ # ensure that one (!) explicit step of process replaces
+ # one (!) implicit step of same process
+ for i in [i for i, s in node.steps.items()
+ if not s.is_explicit
+ and s.process.id_ == child.step_process_id]:
+ del node.steps[i]
+ break
node.seen = node_id in seen_step_ids
seen_step_ids.add(node_id)
for id_, step in node.steps.items():