Q:

Scala passing a case class as a function

which Scala magic allows MyClass to be passed as a function:
trait T
case class MyClass(x: String) extends T
def m(f: (String) => T): Unit = println("working")
m(MyClass)

A:

You aren't passing the case class, you're passing it's companion object, also called MyClass. MyClass (the companion) is a Function1[String, T] because the compiler automatically creates the method:
def apply(s: String): MyClass

You can check:
scala> MyClass.isInstanceOf[Function1[String, T]]
res53: Boolean = true

