Shuffle functions around so matches will (eventually) be able to compact parsers.
Bugfix: Cat (Eps, p) must not compact to Eps. But catch the case where Cat (Eps, p) and nullable p - here we can compact to p.