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