let any (ds: 'a Deferred.t list) : 'a Deferred.t = let i = Ivar.create () in Deferred.List.iter ~how:`Parallel ds ~f:(fun d -> d >>| fun x -> Ivar.fill_if_empty i x) |> don't_wait_for; Ivar.read i