Giter Site home page Giter Site logo

Comments (5)

ollef avatar ollef commented on August 15, 2024

Yes, that behaviour seems more useful than the current one, and it's better to use an established standard behaviour when we can. I can't remember if there's any good reason for the current design, but I don't think so. It was probably just the most obvious monoid I could think of at the time.

If we were able to deprecate uses of a type class instance it would be quite reasonable to change them after a deprecation period on the old instances, but I don't think that's possible with GHC right now.

Since that's not possible, perhaps we could remove them in a release and reintroduce the new instances after some time?

What do you think? Does anyone else have any input?

from earley.

sboosali avatar sboosali commented on August 15, 2024

from earley.

ollef avatar ollef commented on August 15, 2024

Yeah, it's to avoid breaking people's code without compile errors.

I'm not sure how careful we need to be here. Are there even any users using the instances in question, and if they are, are they returning results that have Monoid or Semigroup instances?

from earley.

phadej avatar phadej commented on August 15, 2024
  • New instance has high chance of breaking users code already, not everything is Semigroup / Monoid.

  • Hopefully all users have tests for their grammars, which will break if there are no compilation errors

  • I'm strongly for direct major break.

  • If @ollef has something else breaking in his mind, than it will help to break people properly, so they would read the changelog :)

from earley.

chowells79 avatar chowells79 commented on August 15, 2024

I would hazard a guess that few people are using those instances, but it's really hard to know. I've got no great insights to add regarding an upgrade path.

from earley.

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.