unrelated([],[],Store) -> Store; unrelated([],Stack,Store) -> unrelated(Stack, [], Store); unrelated([H|T],Stack,Store) -> if list(H) -> unrelated(H, [T | Stack] , Store); true -> unrelated(T, Stack, [H | Store]) end. u([], List) -> List; u([[]|XS], List) -> u(XS, List); u([[X|XS]|XS2], List) -> u([XS|XS2], [X|List]); u([X|XS], List) -> u(XS, [X|List]).