val let* : ('a, 'b) m -> ('b -> ('a, 'c) m) -> ('a, 'c) mval let+ : ('a, 'b) m -> ('b -> 'c) -> ('a, 'c) mval and+ : ('a, 'b) m -> ('a, 'c) m -> ('a, 'b * 'c) mval (>|=) : ('a, 'b) m -> ('b -> 'c) -> ('a, 'c) mval (>>=) : ('a, 'b) m -> ('b -> ('a, 'c) m) -> ('a, 'c) mval return : 'a -> ('b, 'a) m