It seems weird that this produces a "`Recursion limit exceeded`" error: ```scala type M = { type T[+A]; type Ev >: T[Any] <: T[Nothing] } val M: M = ().asInstanceOf[M] def dcast(m: M.T[Any]): M.T[Int] = m: M.Ev ```