%?-use_module(library(lists)).
?-prolog_flag(single_var_warnings,_,off).



/* Emulates the gensym(2) function */

gensym(A,B) :- get_num(A,Num),
	name(A,Name1),
	name(Num, Name2),
	append(Name1,Name2,Name),
	name(B,Name).

/* Emulates the init_gensym(1) function */

init_gensym(A) :- asserta(current_num(A,0)).

/* get_num(2) */

get_num(A,Num) :- 
	retract(current_num(A,Num1)), !,
	% writeNoln(Num1),
	Num is Num1+1,
	asserta(current_num(A,Num)).

get_num(A,1) :- asserta(current_num(A,1)).

/* Emulates the writeNoln(1) function */



