Scalaでidを書こうとした

最初,無名関数で書こうとしたら,どうすれば多相的になってくれるのかわからなくて,ぐぐってたら名前を付ければいいということだった.
ところが,

scala> def id[T](x: T) = x
id: [T](x: T)T

scala> id _
res0: Nothing => Nothing = <function1>

scala> (id _)(42)
<console>:9: error: type mismatch;
 found   : Int(42)
 required: Nothing
              (id _)(42)
                     ^

( ゚Д゚)


(追記 12/23 11:59)

scala> ((identity _):Int => Int)(42)
res8: Int = 42

scala> (((identity _):(Int => Int) => (Int => Int))(identity _))(42)
res9: Int = 42

型を書けば動く.手前に書いた場合は推論してくれる.
メソッドは多相的になれるけど関数は多相的になれないのかな.