Module GapiMonad.SessionM

include StateMonad with type 'a t = GapiConversation.Session.t -> 'a * GapiConversation.Session.t
include Monad with type 'a t = GapiConversation.Session.t -> 'a * GapiConversation.Session.t
val return : 'a -> 'a t
val bind : 'a t -> ( 'a -> 'b t ) -> 'b t
val get : 'a -> 'a * 'a
val put : 'a -> 'b -> unit * 'a
include MonadCombinators with type 'a m = 'a t
type 'a m = 'a t
module Infix : sig ... end
val join : 'a m m -> 'a m
val liftM : ( 'a -> 'b ) -> 'a m -> 'b m
val liftM2 : ( 'a -> 'b -> 'c m ) -> 'a m -> 'b m -> 'c m
val fmap : ( 'a -> 'b ) -> 'a m -> 'b m
val sequence : 'a m list -> 'a list m
val sequence_ : 'a m list -> unit m
val mapM : ( 'a -> 'b m ) -> 'a list -> 'b list m
val mapM_ : ( 'a -> 'b m ) -> 'a list -> unit m
val foldM : ( 'a -> 'b -> 'a m ) -> 'a -> 'b list -> 'a m