The problem mentioned has nothing todo with the conditional expression and not with Java, but with the way reduction for typed languages has to be formulated with casting of the actual parameter types to the formal parameter types. > > m(a1...an) --> r[((T1)a1)/x1...((Tn)an)/xn] > Christian Horn