Scala 中是否有类型变量 'm forSome { type m[O] <: UpperBound[O] }` 的简写?

Tur*_*rin 1 types scala existential-type higher-kinded-types

问题:

trait UpperBound[O]
trait High[F[O] <: UpperBound[O]]

def canEqual(that :Any) = that.isInstanceOf[High[_]]

def high(h :High[_]) = ???
Run Code Online (Sandbox Code Playgroud)

不编译,因为 scalac 看到的是_类型而不是它期望的类型构造函数。如何解决它,理想情况下不写小说?

原始问题(在对 Dmytro 的回答进行编辑之前)有:

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] }] = ???
Run Code Online (Sandbox Code Playgroud)

是否有使用通配符表达式编写上述两种方法的更短方法?简单地使用_inHigh的类型参数位置不起作用,因为类型不匹配,_[_]甚至不是有效的类型表达式。

Dmy*_*tin 5