Were you improving my original fix for https://issues.scala-lang.org/browse/SI-6680, by any chance?
Looks like it picks off SI-6680 as well.
The thrill is completely gone, don't worry. I found this the usual way: fix a bug only to discover that a) the bug was creating unsoundness and b) the standard library depends on the unsoundness.
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I also believe the right fix is to change pattern matching to infer GADT-style typed only for non-variant parameters.
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
case Cont(s, g) => Cont(s, (x:Any) => g(x).flatMap(f)) // !!! (x: Any) => g(x) ?
Can you give an example how not doing so would break things?
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Lex
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I believe that's the problem discovered by Paolo Giarruso, presented in his talk at the last Scala workshop:"Open GADTs and Declaration-site Variance: A Problem Statement"I also believe the right fix is to change pattern matching to infer GADT-style typed only for non-variant parameters.
On Mon, Sep 30, 2013 at 8:49 PM, Paul Phillips <pa...@improving.org> wrote:
The thrill is completely gone, don't worry. I found this the usual way: fix a bug only to discover that a) the bug was creating unsoundness and b) the standard library depends on the unsoundness.
I believe that's the problem discovered by Paolo Giarruso, presented in his talk at the last Scala workshop:"Open GADTs and Declaration-site Variance: A Problem Statement"
trait Exp[+T] case class Const[T](t: T) extends Exp[T] class UnsoundConst(t: String) extends Const[Any](t) with Exp[Boolean]
trait Exp[+T] case class Const[T](t: T) extends Exp[T] class UnsoundConst(t: String) extends Const[Any](t) with Exp[Boolean]
Would DOT allow this? I don't quite know how but I hoped that both the Exp[Any] from Const[Any] and the Exp[Boolean] would contribute, resulting in Any & Boolean = Boolean required for the t given to Const, even when only Const[Any] is written.