package b0
Source file b0__result.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26(*--------------------------------------------------------------------------- Copyright (c) 2025 The more programmers. All rights reserved. SPDX-License-Identifier: ISC ---------------------------------------------------------------------------*) include Stdlib.Result let product r0 r1 = match r0, r1 with | (Error _ as r), _ | _, (Error _ as r) -> r | Ok v0, Ok v1 -> Ok (v0, v1) let retract = function Ok v | Error v -> v (* Interacting with Stdlib exceptions *) let error_to_failure = function Ok v -> v | Error e -> failwith e let get_ok' = function Ok v -> v | Error e -> invalid_arg e (* Syntax *) module Syntax = struct let ( let* ) v f = bind v f let ( and* ) a b = product a b let ( let+ ) v f = map f v let ( and+ ) a b = product a b end