This and the lines below look like a really complicated way to achieve what you want (I think).

What about (OTOH):

```ocaml
(* Sort oldest-to-newest *)
let sorted = List.sort (fun a b -> compare (get_number a) (get_number b)) filtered in

let rec add_jobs = function
  | [] -> return ()
  | [_] -> return () (* Skip last *)
  | (hd :: tl) -> add_compression_job (get_number hd) >>= fun () -> add_jobs tl
in
add_jobs sorted
```