scala> trait SAM { def flup(c: Int): Unit }
scala> object T { def f(x: Int => Unit) = 0; def f(s: SAM) = 1 }
scala> T.f(x => x)
^
error: overloaded method value f with alternatives:
(s: SAM)Int <and>
(x: Int => Unit)Int
cannot be applied to (Int => Int)
scala> T.f(x => {x; ()}) // workaround
res1: Int = 0