	/***** Permutations: list arrangements of a set  *****/

mode distr(no,yes).	% distr distributes over union in second argument
closure  none.

perms(phi) contains {[]}.
perms({X\T}) contains distr(X, perms(T)).	% perms(T) will produce one
						% permutation of T at a time
	distr(X, {H\_}) contains {[X|H]}.
