News for hackers. Stuff that matters.
Re:A Path to Enlightenment in Programming Language Theory by NotableAlamode on Monday June 22, 2015 @07:25PM (#9761782)

    soundness question when considering variance 
What is this question? Have you got a reference?
Re:A Path to Enlightenment in Programming Language Theory by nrinaudo on Tuesday June 23, 2015 @03:34AM (#9763125)
It is possible that he's referring to mutable and covariant types being unsound.

As an example, let's assume that you have two classes, Cat and Dog, both inheriting from Animal, and that you have a covariant mutable List implementation.

Say you have a value of type List[Cat]. Since List is covariant, this value can legally be passed to a function that expects a parameter of type List[Animal].

Now, imagine you have a function that expects a List[Animal] and adds a Dog to it. That's a legal operation: Dog extends Animal and can thus be used this way.

Putting the two together, you have a perfectly legal way of adding a Dog to a List[Cat], which a sound type system should not allow. An example of that is Java's Array, which is both covariant and mutable, and that as a result can yield type errors at runtime.

Re:A Path to Enlightenment in Programming Language Theory by AnimalMuppet on Monday June 22, 2015 @07:49PM (#9761878)
I'm not the one you were replying to, but maybe seanmcdirmid means this: https://en.wikipedia.org/wiki/Covariance_and_contravariance_...

But I thought that was pretty well understood, so I don't know what he thinks is open...

Re:A Path to Enlightenment in Programming Language Theory by seanmcdirmid on Tuesday June 23, 2015 @03:20AM (#9763081)
For many popular type systems with generics, not really; e.g. see http://www.cs.cornell.edu/~ross/publications/mixedsite/mixed...