optimize `parse(IO)`

This is still embarrassingly slow... but this change shaves off an order of magnitude
Merge pull request #22 from WestleyArgentum/patch-6

optimize `parse(IO)`