Lens based parsing

I'd highlight if the `Maybe` addition in 004ba61 is OK and whether there is any performance degradation with e387c7f.

This takes care of #5 and #6