Module Utils.EitherMonad

type ('a, 'b) t =
| Left of 'a
| Right of 'b
val return : 'a -> ('b'a) t
val return_left : 'a -> ('a'b) t
val bind : ('a'b) t -> ('b -> ('a'c) t) -> ('a'c) t
val bind_left : ('a'b) t -> ('a -> ('c'b) t) -> ('c'b) t
val (>>=) : ('a'b) t -> ('b -> ('a'c) t) -> ('a'c) t
val of_option : left:'a -> 'b option -> ('a'b) t
val of_result : ('a'b) Result.result -> ('b'a) t