card_leq2([],_C).
card_leq2([_|T],s(C)) :- card_leq2(T,C). %when(nonvar(T),card_leq2(T,C)).
card_leq2(avl_set(A),C) :- card_leq(avl_set(A),C).
card_leq2(closure(P,T,B),C) :- card_leq(closure(P,T,B),C).
card_leq2(global_set(A),C) :- card_leq(global_set(A),C).
card_leq2(freetype(A),C) :- card_leq(freetype(A),C).