:- op(1,fx,(any)).

goal_expansion(any(X,Y,Z),anyhow(H)) :-
	X =.. L0,
	append(L0,[Y,Z],L),
	H =.. L.

onehow(H) :- findall(One, onehow1(H,One), All), how(H,All).
anyhow(H) :- findall(One, anyhow1(H,One), All), how(H,All).

how(H,L0) :- sort(L0,L), member(do(_,H,How),L), How.

onehow1(H,do(N,H,How)) :- clause(H,How), N is 1.
anyhow1(H,do(N,H,How)) :- clause(H,How), N is random(100000).
