Skip to content

Consider where we can use opaque mechanism to provide abstraction #2136

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
MatthewDaggitt opened this issue Oct 12, 2023 · 5 comments
Open
Assignees
Milestone

Comments

@MatthewDaggitt
Copy link
Contributor

MatthewDaggitt commented Oct 12, 2023

Maybe now that opaque is implemented in Agda 2.6.4 we should revisit our solution to #1753.

This is exactly the situation that the new opaque mechanism was designed for. What are people's thoughts? Too risky to adopt a cutting edge feature? In v3.0 I would imagine we will be making a lot of definitions opaque in the library?

@MatthewDaggitt MatthewDaggitt added this to the v2.0 milestone Oct 12, 2023
@Taneb
Copy link
Member

Taneb commented Oct 12, 2023

I'd love this to be done! Maybe for 2.1 rather than 2.0 though?

@MatthewDaggitt
Copy link
Contributor Author

MatthewDaggitt commented Oct 12, 2023

We can't do it for v2.1 as it'll be a breaking change 😢

@MatthewDaggitt MatthewDaggitt self-assigned this Oct 12, 2023
@jamesmckinna
Copy link
Contributor

piano, piano

FWIW, I think there are a few (!?) too many moving targets at the moment for the v2.0 release to incorporate such a new feature, especially as we have delayed and delayed and delayed the release for all kinds of reasons already.

Regarding v3.0, maybe we should be planning for this now, and not anticipating too many v2.x bumps?

@jamesmckinna
Copy link
Contributor

Eg, I've been working on a revised version of #2055 which

  • (BREAKING) makes Relation.Nullary.Decidable.Core.{yes|no} lazier still (and streamlining invert via its dependently-typed version)
  • (DEPRECATION) lifts Relation.Nullary.Decidable.Core.recompute to Relation.Nullary.Reflects, with knock-on import simplifications
  • (DEPRECATION) but with widespread knock-on consequences throughout to respond to the first change

plus misc. other overhauls. I don't want to hold anything up trying to argue for this now just because v2.0 will be the titanic breaking release... I think there will be more of those to come in future, and we should plan for that.

Mind you, if @MatthewDaggitt has self-assigned the current issue, we might have a PR for it before the meeting today ;-)

@MatthewDaggitt
Copy link
Contributor Author

Hmm I was trying, but it turns out there's some subtlety to opaque that I hadn't quite understood. In particular you can only unfold a definition in another opaque block... which means that we'd have to have opaque blocks in the Properties files too...

Maybe I'll leave this one lie for v3.0 as @jamesmckinna suggests.

@MatthewDaggitt MatthewDaggitt modified the milestones: v2.0, v3.0 Oct 12, 2023
@MatthewDaggitt MatthewDaggitt changed the title Revisit disastorous expansion of rationals Consider where we can use opaque mechanism to provide abstraction Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants