...am I the only one who finds type inference bad, at least when "reading the code as documentation"?
In practice the type which is inferred is pretty obvious: val x = 800 vs. val x: Int = 800
It is very different from others because this language assumes the developer is smart.