Определение типов возвращаемых значений(и не только их, но и полей, констант и проч.) вполне может быть возложено на компилятор. В action script сие не доступно (к сожалению).

Код:
def func(a:int, b:int) = a + " " + b
func: (int,int) => string
val c = new MyObject
c: [MyObject]
И ничего плохо от этого никому не будет.