Module type Bookaml_amazon.ENGINE

module type ENGINE = sig .. end

type 'a monad 
It makes sense to wrap in a monadic system such as Lwt those functions that may take some time to complete. If that is the case, then any module that implements this signature should be declared as having module type Bookaml_amazon.ENGINE with type 'a monad = 'a Lwt.t. Nevertheless, for the sake of flexibility we do not actually mandate that Lwt be used, and hence why this abstract type 'a monad exists. It is in fact possible for the implementation to use no monad-based system at all, in which case the identity monad may be declared: Bookaml_amazon.ENGINE with type 'a monad = 'a.
val find_some_books : ?page:int ->
credential:Bookaml_amazon.credential ->
Bookaml_amazon.criteria ->
(int * int * Bookaml_book.t list) monad
Finds some of the books that match the given search criteria. The result is a 3-tuple consisting of the total number of books matching the critera, the total number of result pages, and a list of books for the current page. Note that only one page of results (consisting of a maximum of 10 books) can be obtained per invocation of this function. By default, the first page of results is returned. If you wish to obtain a different result page, then set parameter page with the corresponding page number. If you wish to obtain all books from all result pages, then consult function Bookaml_amazon.ENGINE.find_all_books.
val find_all_books : credential:Bookaml_amazon.credential ->
Bookaml_amazon.criteria -> Bookaml_book.t list monad
Finds all the books that match the given search criteria. Note that if the given search criteria are not particularly stringent, this function can easily return hundreds of results and require several independent requests to Amazon's servers. If you are only interested in the most relevant results, then function Bookaml_amazon.ENGINE.find_some_books is more appropriate.
val book_from_isbn : credential:Bookaml_amazon.credential ->
Bookaml_isbn.t -> Bookaml_book.t option monad
Returns the book that matches the given ISBN. Note that it actually returns Some book if the book was retrievable and None otherwise.
val book_from_isbn_exn : credential:Bookaml_amazon.credential ->
Bookaml_isbn.t -> Bookaml_book.t monad
Similar to Bookaml_amazon.ENGINE.book_from_isbn, but raises an exception if the book was not found or if an error occurred during the operation.