package mechaml

  1. Overview
  2. Docs

Module Agent.MonadSource

Sourcetype 'a m = t -> (t * 'a) Lwt.t
Sourceval bind : 'a m -> ('a -> 'b m) -> 'b m
Sourceval return : 'a -> 'a m
Sourceval return_from_lwt : 'a Lwt.t -> 'a m
Sourceval map : ('a -> 'b) -> 'a m -> 'b m
Sourceval run : t -> 'a m -> t * 'a
Sourceval fail : exn -> 'a m

Wrappers of Lwt's fail functions

Sourceval fail_with : string -> 'a m

Wrappers of Lwt.catch and Lwt.try_bind inside this monad

Sourceval catch : (unit -> 'a m) -> (exn -> 'a m) -> 'a m
Sourceval try_bind : (unit -> 'a m) -> ('a -> 'b m) -> (exn -> 'b m) -> 'b m
Sourcemodule Infix : sig ... end

The Infix module defines operators for common bind operations

Sourcemodule List : sig ... end

The List module mainly wrap the Lwt_list one in the Agent monad. Functions suffixed with _s chains the actions sequentially, passing around the updated agent to the next one. The _m ones do everything in parallel, sending a copy of the initial state to every threads and returning this same unupdated state. The latter can be useful to retrive a bunch of ressources in batch where the updated state is not of interest (e.g images)

get the current state of the agent, or set a new one

Sourceval get : t m
Sourceval set : t -> unit m

Wrap the type of functions operating on the agent such as Agent.cookie_jar or Agent.set_cookie_jar to usable inside the monad. For example, the first one go from Agent.t -> Cookiejar.t to Agent.t -> (Agent.t * Cookiejar.t) Lwt.t by just returning the agent unmodified together with the current cookie jar and wrap the result in Lwt.return

Note that the redefined functions have the same name as their counterpart, and thus will shadow or can be shadowed by them.

Sourceval save_content : string -> string -> unit m
Sourceval client_headers : Cohttp.Header.t m
Sourceval set_client_headers : Cohttp.Header.t -> unit m
Sourceval add_client_header : string -> string -> unit m
Sourceval remove_client_header : string -> unit m
Sourceval set_max_redirect : int -> unit m
OCaml

Innovation. Community. Security.