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