Avoid deepcopy if possible, PushResult does not copy predicate