Droping StateT can result in huge perforance improvement, no get/unget, strictification of the reading index, inner loop only in ST