Indeed, in this case you need to provide the parameter type of the lambda because it can't be inferred. In such case you need to use `()` to delimit the parameter list. Your trick with using `{}` is neat but it does not scale to lambdas with multiple parameters:

```
scala> val f = { x: Int => x + 1 }
f: Int => Int = <function1>

scala> val g = { x: Int, y: Int => x + y }
<console>:1: error: ';' expected but ',' found.
       val g = { x: Int, y: Int => x + y }
```

Actually, I'm surprised this trick with using `{}` around anonymous function with explicit parameter type works at all. I couldn't find relevant excerpt in Scala spec which allows it.

You mentioned that you like the for clarity. What kind of clarity do you have in mind? As @harrah mentioned, you normally use `{}` for delimiting a block or pattern matching anonymous function.