package lsp
Source file monad_intf.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31(** This module type is accessible as [Stdune.Monad.Basic] outside of [Stdune]. *) module type Basic = sig type 'a t val return : 'a -> 'a t val bind : 'a t -> f:('a -> 'b t) -> 'b t end (** This module type is accessible as just [Stdune.Monad] outside of [Stdune]. *) module type S = sig include Basic val map : 'a t -> f:('a -> 'b) -> 'b t module O : sig val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t val ( >>> ) : unit t -> 'a t -> 'a t val ( let+ ) : 'a t -> ('a -> 'b) -> 'b t val ( and+ ) : 'a t -> 'b t -> ('a * 'b) t val ( let* ) : 'a t -> ('a -> 'b t) -> 'b t val ( and* ) : 'a t -> 'b t -> ('a * 'b) t end end