procedure UpperTrimPDCO(L)
   local done, i

   done := set()

   while i := @L[1] do {
      if not member(done, i) then
         insert(done, i)
      else suspend i
      }

end

procedure LowerTrimPDCO(L)
   local i

   while i := @L[1] do {
      i -:= 1
      if i ~= 0 then suspend i
      }

end