GithubHelp home page GithubHelp logo

Comments (4)

int-index avatar int-index commented on July 18, 2024

There is a well-maintained for of Parsec — https://hackage.haskell.org/package/megaparsec — that has support for ByteString and even custom input stream types.

from parsec.

LinuxUser404 avatar LinuxUser404 commented on July 18, 2024

Thanks for your reply. So basically if I need some extra functionality I should use a different package... Is there any reason why those are different packages while they are meant to do the same thing?

from parsec.

int-index avatar int-index commented on July 18, 2024

No technical reason, just a communication issue (I guess merging these changes upstream was difficult). I think if @mrkkrp got commit bits, he would not be opposed to having all these changes directly in parsec.

from parsec.

hvr avatar hvr commented on July 18, 2024

It's not really a communication issue; it's more like that parsec is more conservative at this point given it has to carry a lot of weight in the ecosystem, and any misstep may have significant cost; while megaparsec is free to explore the design space and can move faster.

I intend to improve parsec by stealing ideas from megaparsec/trifecta/parsers, while avoiding bigger changes that would completely break API compatibility. However, we do have a diversity of parsers, and there is not going to be "the one" parser to rule them all. Parsec just happens to be one of the oldest ones and tries to keep its dependency footprint light enough to be consumable by lib:Cabal. Personally, I often use and recommend megaparsec or attoparsec for projects for which Parsec is not a good fit; or you can just go for https://hackage.haskell.org/package/parsers which abstracts over parser libraries.

Long story short: PRs which add (popular) functionality to Parsec are quite welcome. :-)

from parsec.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.