package b0

  1. Overview
  2. Docs
Software construction and deployment kit

Install

dune-project
 Dependency

Authors

Maintainers

Sources

b0-0.0.6.tbz
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0

doc/src/b0.std/b0__result.ml.html

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