-
Notifications
You must be signed in to change notification settings - Fork 246
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
[ new ] Data.Tree.AVL.*.Relation.Unary.Any #1385
Conversation
Really happy with how much simpler the types are following the introduction of K&_
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.
It's not a huge PR
Yup only 600 new lines of code, definitely not huge 😆
By only having one of the I only noticed the issue with It's more or less at the same moment I realised I could use |
Well, that took longer than expected. And led to many more changes than I had anticipated. |
@gallais is it okay with you if I push this to v1.6? I'd quite like to have some time to go through the new additions, and in particular I'm a bit worried about the addition of |
Sure! |
@gallais I would really like to merge this in as it's a great piece of work, but I am still a bit dubious about the inclusion of |
I think I have a plan to get us out of this pickle. |
Ooh, exciting 😁 |
Turns out we were not using the latest release for testing
Thanks @gallais, I agree it is an improvement as it no longer breaks backwards compatibility with However I'm still reluctant to include this combinator. The reasoning APIs' primary purpose is to improve the readability of proofs, but in my opinion
I would argue that it's better to keep the contradiction explicit in the code? Other opinions welcome! |
I think flip contradiction (<-irrefl refl) $ begin (...) I guess we could make the return type |
Rather than Tongue-in-cheek: also have |
Hmm, yup I'd be on-board with something that had contradiction in it. Would |
Okay, as this is the only outstanding PR/issue blocking the v1.6 release candidate, I've temporarily removed the new combinator from this PR. Once Travis goes green, I'll merge this in and then open a new PR with the combinator restored where we can continue this discussion. |
A first batch of relations and properties for
Data.Tree.AVL
This introduces a breaking change.
K&_
used to be defined like so:and it is now its own standalone record:
The advantage is that
V
can be reconstructed from aPred (K& V) p
typewhich means that instead of having to pass it explicitly everywhere I can
have way cleaner types because a lot of things can be:
variable
sI'm happy with the current status. It's not a huge PR and yet it provides a
slice of the functionalities I want that is both wide & deep enough to function
as a sanity check on the design. The only thing I would consider experimental
is
Data.Tree.AVL.Indexed.Relation.Unary.Any.Properties
.