let ( let* ) = Lwt.bind let ( let+ ) x f = Lwt.map f x let ( let*? ) = Lwt_result.bind let ( let+? ) x f = Lwt_result.map f x let list_get_ok l = let err = ref None in try Ok (List.map (function | Error _e as e -> err := Some e; raise Exit | Ok v -> v) l) with Exit -> ( match !err with None -> assert false | Some v -> v) let lwt_list_get_ok l = let open Lwt.Syntax in let+ l = l in list_get_ok l