StateT with distinctG