Scala's type system is well known to be Turing complete. I am curious (for purely self-enrichment reasons, not feature-request reasons) what would have to be removed from Scala in order to make compilation decidable?
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Furthermore, a type with a contravariant type parameter may only appear in a covariant position in an extended type, satisfied type, case type, or upper bound type constraint.
Note: this restriction exists to eliminate certain undecidable cases described in the paper Taming Wildcards in Java's Type System, by Tate et al.
trait IN[-U] {}
trait IC[X] extends IN[IN[IC[IC[X]]]] {}