16
procedure Op (Container : in Container_Type) is
   C : Cursor := Container.Last; -- factory
   E : Element_Type;
begin
   while Has_Element (C) loop
      E := Element (C);
      exit when Predicate (E);
      Do_Something (E);
      Previous (C); --or: C := Previous (C);
   end loop;
end Op;
Active Iteration In Reverse