Port library from Parsec to Attoparsec, so that it uses ByteStrings instead of Strings