Is there a shorthand for type variable 'm forSome { type m[O] <: UpperBound[O] }` in Scala?
问题 Problem: trait UpperBound[O] trait High[F[O] <: UpperBound[O]] def canEqual(that :Any) = that.isInstanceOf[High[_]] def high(h :High[_]) = ??? Does not compile, because scalac sees the _ type instead of a type constructor it expects. How to fix it, ideally without writing a novel? Original question (before edits in reply to Dmytro's answer) had: def canEqual(that :Any) = that.isInstanceOf[High[m forSome { type m[O] <: UpperBound[O] }]] def high(h :High[m forSome { type m[O] <: UpperBound[O] }