/* **********************************************************
	module for basic transaction functions
*********************************************************** */

:- export createpreds/2, changefunctor/3.
:- export dbase/1.
:- import insertbase/1, deletebase/1 from basic_funs3.

% create a list of N unique and uninstantiated args
%
createpreds(0,[]).
createpreds(N,[_|L]) :-
	N>0, M is N-1, createpreds(M,L).

% change the functor of Pred to Name and return the new predicate as NewPred
%
changefunctor(Pred,Name,NewPred) :-
	Pred =.. [_|Args],
	NewPred =.. [Name|Args].

dbase(Pred) :-
	call(tr) ->  (  deletebase(tr),
			call(Pred),
			insertbase(tr) )
	;
	call(Pred).


