For completeness: >> How about expressions? >> >> #String.length() + 2 Type error. >> #A.getB().getC() Greedy. Evaluate t=A.getB(), then evaluate to #t.getC(). >> and even partiall application? >> >> #A.getB(2).getC() Nope. >> #A.getB(Integer).getC() Nope.