-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
SplitLaw doesn't hold in general #1567
Comments
The law for the Equivalence between Commutativity and
|
Looking at the history, it seems that @non wrote the original definitions of the type-classes, but the The first option is to modify the inheritance hierarchy in the Edited: In the first case, we can also remove the |
@kailuowang should this be assigned to 1.0? It seems like we might be down a problematic trajectory on this one. |
@ceedubs I agree. assigned. |
I vote for option 1 proposed by @diesalbla in #1567 (comment), whose analysis in this issue is, IMO, great work. |
I'm good with option 1 as well. |
We can make |
Since there is some agreement, i shall carry out through with option 1. This will include modifying the inheritance relations as described, as well with the laws, and updating the existing instances of |
Sorry for chiming in so late in the conversation. I think @diesalbla's and @peterneyens' analysis is spot-on. My justification for adding |
Fixed in #1766. |
When you run our current
SplitLaw
forKleisli[Either[String, ?], ?, ?]
it fails thesplitInterchange
law.@fthomas already mentioned in #232 that he wasn't sure that it was sound.
If you add the following to
KleisliTests
you can see it fail.I looked at it with @diesalbla and the law only seems to hold for commutative arrows.
The text was updated successfully, but these errors were encountered: