sig type 'a t val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t val ( >> ) : 'a t -> 'b t -> 'b t val return : 'a -> 'a t val run : 'a t -> 'a end