fixes #223 and cleans up optimiser runner and SeqOp optimisation rule
regression test for #223
remove code that is dead because it follows a return/throw