function [closure] = quad_enum(a,visit_proc)
% next_mark has to begin being 1
global next_mark;
%global closure;

next_mark=1;

mark = next_mark;
next_mark = next_mark +1;


if(next_mark == 0)
   next_mark = 1;
end;

[closure] = quad_do_enum(a,visit_proc,mark);


%void quad_enum(
%    edge_ref a, 
%    void visit_proc(edge_ref e, void *closure), 
%    void *closure
%  )
%  {
%    unsigned mark = next_mark;
%    next_mark++;
%    if (next_mark == 0) next_mark = 1;
%    quad_do_enum(a, visit_proc, closure, mark); 
%  }
