-
Notifications
You must be signed in to change notification settings - Fork 245
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
List of wrinkles in Data.List.Properties
#2358
Comments
thanks! noting some other inconsistencies i spotted while writing it:
|
Not sure about the third point regarding |
hmm, that looks like a separate problem to me? my point is that all other current congruence proofs in Data.List.Properties ( then yes, it would be nice to port more of these properties to setoids, but in our current module structure those belong in Data.List.Relation.Binary.Equality.Setoid, is that correct? are you suggesting to move them? |
Re: moving properties to Re: TL;DR: you and @MatthewDaggitt are right! As for |
Amusingly in code that Conor and I are currently writing, we've gone in the opposite direction: we've generalized some cong-like functions to take that explicit proofs on the 'obvious input' so that we had somewhere more obvious to hand certain proofs, instead of being more-or-less forced to do it in 2 steps. My current thinking on that: this feels like a false choice. Why not have both kinds? Now, the default ones could certainly have a different design than the ones provided in an 'extended' module. |
Thanks again to @mildsunrise for the prompt to reconsider some of the fundamentals. But we should focus on merging your #2355 before either getting too caught in the weeds... or any of the other PRs which yours has prompted! |
@JacquesCarette that's right, we can have two proofs for every higher order function, one accepting only functional equality and the other accepting also equality on the inputs. i'd only ask for things to be consistent among all functions. @jamesmckinna yes, that would be nice :) let me see if there's anything missing there on my part |
Various things spotted during #2355 that require breaking changes:
head-map
should take an explicit rather than an implicitf
zipWith-comm
should be generalised to take two functionsf
andg
.The text was updated successfully, but these errors were encountered: