I've recently started playing with Scala (2.8) and noticed the I can write the following code (in the Scala Interpreter):
scala> var x : Unit = 10
x : Unit = ()
It's not obvious what's going on there. I really didn't expect to see any implicit conversion to Unit.
See section "6.26.1 Value Conversions" in the Scala Language Specification version 2.8:
...
Value Discarding. If
ehas some value type and the expected type is Unit,eis converted to the expected type by embedding it in the term{ e; () }....