-
Notifications
You must be signed in to change notification settings - Fork 703
Don't break SI-2066 (non-trans) #328
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
|
I am considering reverting to a position that I once held and have since For practical purposes, do not use variance annotations, not ever. The On 10/04/13 12:58, Stephen Compall wrote:
Tony Morris |
|
The fact is that subtyping and variance are an inherently difficult When I made the changes to add variance annotations everywhere in scalaz I That said, I believe that the current state of Scala's kind system should On Tue, Apr 9, 2013 at 11:14 PM, tonymorris notifications@github.comwrote:
|
|
On Wed, Apr 10, 2013 at 1:46 PM, Rúnar notifications@github.com wrote:
Is this really true if you hide all the sub-types? The only evidence of The obvious issue is that hiding the sub-types involves significant
There are a few more annoyances that it introduces. One example is trying to implement something like Another (weaker) case that comes up is that the inference I think my greatest grievance is simply that if you use scalaz it forces I would be happy if there were some straight forward way to handle the
I don't, but it sounds like a nice world, I would definitely subscribe to Cheers |
|
And I only just realised this was a github issue, and not on the mailing list. Sorry for the rant. |
|
runarorama writes:
Which is wonderful and useful, but it also seems to accept Thinking about it now, it should be the opposite: an |
|
These are fine; let's split out issue of whether to remove variance on transformers or adapt S11001001/scalaz@8d9c4c1 to not be terrible. |
Don't break SI-2066 (non-trans)
Someday SI-2066 may be fixed. We shouldn't assume it won't be.
This removes some instances of SI-2066 incompatibility.
However, the trickery to solve the variance issues revealed by
traversedon't seem to apply to theHoistandCohoistinstances; an attempt to solve this by makingMonadTranstake aF[_[+_], _]eventually threatened to demand thatMonadrequire variance again, making it highly distasteful; see S11001001/scalaz@8d9c4c1.What else can we do to satisfy the demand for variance when constructing transformer stacks?
(I believe
StateTLiftIOand others like it are also unsound, but won't worry about that here.)