Давным-давно я написал
статью по разборщики на потоковых процессорах.
Так вот, работают они совершенно нелинейно. Простой разборщик наподобие \n -> prun (pmany (ptoken '1' `ppar` ptoken '2')) (replicate n '1') работает за квадратичное от n время.
Есть у меня подозрение, что это из-за того, что ppar реализован не как исключающий ppar монадных разборщиков.
Не могу доказать и не могу построить исключающий ppar.