tree(A) = sum(product(A),product(tree(A),tree(A)))
= {A} | {tree(A),tree(A)}.
array(T) = list(list(T)).
cube(T) = list(array(T)).
typeCons(A,B,C) = product(A,B,list(C)).
By Maxim Sokhatsky
Live