Module Utils.EitherMonad

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