-
Notifications
You must be signed in to change notification settings - Fork 247
Pull lattice-like structures out of Algebra, into Algebra.Lattice #1108
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mostly pretty good! I'm wondering how we can maximise backwards compatibility somehow though. I think the best bet is to keep old variants around (Algebra.Lattice.Old
?), then people don't have to upgrade immediately.
Obviously there's various other files that'll need updating...
5fa4cd7
to
b449551
Compare
@laMudri apologies, was trying to bring this up-to-date and ended up messing up the commits. I've ended up having to force push. I'm happy to take responsibility for merging this in for v2.0. |
Hmm actually this is more work then I'd first envisaged. @laMudri any chance you could help out by moving all the lattice constructions in
|
Also a couple of quick points on some of the design decisions. I reverted your change to define The second is that aren't we missing the smart constructors for the |
If this is for version 2, can't we find a general solution to these redundancy problems? For example, I'd start by taking the I think any further thought or effort from me on this is going to come next weekend at the earliest. I'm happy to discuss the first point earlier, though, given that I have it in mind. |
Eek that sounds rather drastic. Isn't having a well-formed equality relation part of being a magma etc.? To be honest, with the current design of Agda, I don't think you're ever going to find a solution to all redundancy problems + get 100% usability. I think the best we can probably aim for is consistency and eliminate the worst pain points. More concretely, ignoring the duplicate equality problem, what advantage does your definition of |
Well that was unbelievably painful, let's not do that again 😢 |
Following this comment, here is an attempt at moving and fixing the definitions of lattice-like structures found in the Algebra part of the library. What exists now is work towards an ideal hierarchy, which was done for clarity and my own convenience. For this to be merged, I'd expect to have better backwards compatibility.
Comments welcome.