// exercise coevolveSym
trait HasElem { type A }
trait View[AIn] {
  val tc: HasElem { type A = AIn }
  def f2(p: tc. A): tc. A = p
}

object Test {
  val view: View[Int] = null

  view f2 5  // fails
}
