WIP: rewrite parser, now since I know how attoparsec consumes input