It's past midnight here, so I'll let the commit log speak for itself:
$ ghc --make -main-is Text.Parser.Rule.main \
$ ./a.out '.abc|def' 'xyz'
Expecting: 'def' at line 1, column 1
or: 'abc' at line 1, column 2
I have rewritten half of PArrow for this. The neat thing is that if it matches at any given point, none of the expensive error collection would take place, so there should be no severe performance drawbacks.
Also, the returned match object is now compatible with PGE's structure, so hooking it back to Pugs is trivial.
Parsing is fun, especially when there's only 1.5hr of timeslice for hacking -- I'll go right back to container types tomorrow when the timeslice gets longer. There may even be a Perl5 prototype from Stevan waiting for me when I wake up...