Module Make.Let_syntax

include Base_syntax with type 'a t := 'a X.t
include Core_kernel.Monad.Infix with type 'a t := 'a X.t
val (>>=) : 'a X.t -> ( 'a -> 'b X.t ) -> 'b X.t
val (>>|) : 'a X.t -> ( 'a -> 'b ) -> 'b X.t
include Let_syntax with type 'a t := 'a X.t
val return : 'a -> 'a X.t
val bind : 'a X.t -> f:( 'a -> 'b X.t ) -> 'b X.t
val map : 'a X.t -> f:( 'a -> 'b ) -> 'b X.t
val both : 'a X.t -> 'b X.t -> ('a * 'b) X.t
module Open_on_rhs : sig ... end
module Let_syntax : Let_syntax with type 'a t := 'a X.t