So here are a few ideas:

* Return the ParLoop object from par_loop and inspect the args to see if there are any outstanding unmatched receives.

* In the ParLoop compute method /assert/ after the end of the computation that there are no outstanding unmatched receives.

* Write the example I just did (it's effectively the two-element mass-matrix setup).  Then locally modify the local bit of the Dat and run.  Eventually you'll probably get a failure.

* Work out by hand what the Plan should look like for this case, and assert that it actually does.