these are the results I got for funky:
my funky returned:
7 ?- funky([ [3, [3, 2, 1]], [3, [4, 3, 2]], [2, [2, 1]], [2, [3, 2]]], Result).
Result = [3, 2, 1] ;
Result = [4, 3, 2] ;
false.
and yours returned:
58 ?- funky2([ [3, [3, 2, 1]], [3, [4, 3, 2]], [2, [2, 1]], [2, [3, 2]]], Result)...