I'd like to put constraints on my nodes. I have 3 functions: 'if', 'or',
'and' with arity respectively 3, 2, 2. I also have 9 terminals.

The if-function can accept ANYTHING as its parameters (including another if)
while 'or' and 'and' should accept everything EXCEPT 'if'. So for example
and( or(T, T), T) is acceptable while and(if(T,T,T),or(T,T)) is not because
of the 'if' where 'T' represents a random terminal.

If I could define 2 types: one more 'general' than the other my problem
would be solved. However, as far as I know, this is not included in ECJ.

Anyone can help me? (I prefer to not mess with the Tree Builders, putting
these constraints in the .params file is of course prefered)