do { delete $p->{__P_seen} if exists $p->{__P_seen}; $res;};