% Different than Swi's flatten as that variables are take out.
%%%%%%%%
% flatten_nv( +NestedLists, ?FlatList ) :-
% FlatList is the list of all not list elements of 
% the lists in NestedLists, in depth first, left to right
% order, from o'keefe's book p. 97-98
%%%%%%%
%
flatten_nv( Nlist, Flist ) :-
	flatten_nv( Nlist, Flist, [] ).
flatten_nv( [], L0, L ) :-
	!,
	L0 = L.
flatten_nv( [H|T], L0, L ) :-
	!,
	flatten_nv( H, L0, L1 ),
	flatten_nv( T, L1, L ).
flatten_nv( Oth, [Oth|List], List ).