let dequeue_all t ~f = let rec loop () = match dequeue t with | None -> () | Some v -> f v; loop () in loop ()