Generalize catchSTM