:- module counter.
:- use_module builtin, int, private_builtin.
:- type (counter:counter)
	--->	counter(int)
	.
counter:init(N_3, HeadVar__2_2) :-
		HeadVar__2_2 = counter:init(N_3).
counter:init(N_3) = (counter:counter(N_3)).
counter:allocate(N_4, (counter:counter(N_4)), (counter:counter(V_5))) :-
		V_5 = int:(N_4 + V_6),
		V_6 = 1.
:- pragma termination_info(counter:init((builtin:in), (builtin:out)), finite(1, [yes, no]), cannot_loop).
:- pragma termination_info(counter:init((builtin:in)) = (builtin:out), finite(1, [yes, no]), cannot_loop).
:- pragma termination_info(counter:allocate((builtin:out), (builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop).
