After some nasty bugs that I have in Scala, I always write return types of functions. In Scala it is even more critical because Scala will invent some type that covers unrelated return types. Type inference is good for local variables, but should be avoided for anything else.