verified: loop variant for StateT does not blow the stack; cleanup and symmetry; next step is to apply the same principles to ContT