package reason-standard

  1. Overview
  2. Docs

Module Result.Infix

In functions that make heavy use of Results placing an

open Result.Infix

Can make code significantly more concise at the expense of placing a greater cognitive burden on future readers.

val (>>=) : ('ok, 'error) Result.t -> ('ok -> ('b, 'error) Result.t) -> ('b, 'error) Result.t

An operator version of flatMap

Examples

The following examples assume

  open Result.Infix

  let reciprical (x:float) : (string, float) Standard.Result.t =
    if (x = 0.0) then
      Error "Divide by zero"
    else
      Ok (1.0 /. x)

Is in scope.

Ok 4. >>= reciprical = Ok 0.25
Error "Missing number!" >>= reciprical = Error "Missing number!"
Ok 0. >>= reciprical = Error "Divide by zero"
val (>>|) : ('a, 'error) Result.t -> ('a -> 'b) -> ('b, 'error) Result.t

An operator version of map

Examples

The following examples assume open Result.Infix is in scope.

Ok 4 >>| Int.add(1) = Ok 5
Error "Its gone bad" >>| Int.add(1) = Error "Its gone bad"