%%% utility

%%% esegui
% stampa la lista di azioni che eseguono una procedura
esegui(P) :- esegui(P,List), printlist(List).

esegui(P,Alist) :-
	do(P,s0,S), tolist(S,Alist).

tolist(s0,[]).
tolist(do(A,S),Alist) :-
	tolist(S,Tmp),
	append(Tmp,[A],Alist).

printlist([]).
printlist([X|Rest]) :-
	writeln(X),printlist(Rest).


