(* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) open! IStd let find_value_exn = function None -> raise Caml.Not_found | Some v -> v let value_default_f ~f = function None -> f () | Some v -> v let if_none_evalopt ~f x = match x with None -> f () | Some _ -> x let if_none_eval = value_default_f let exists2 x y ~f = match (x, y) with Some x, Some y -> f x y | _, _ -> false module Let_syntax = struct include Option.Let_syntax let ( let+ ) x f = Option.map ~f x let ( and+ ) x y = Option.both x y let ( let* ) x f = Option.bind ~f x let ( and* ) x y = Option.both x y end