How do I locate .mli files from OPAM modules?

"[email protected] [ocaml_beginners]" <[email protected]>
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
I have some code that opens a module (Async) that I have installed through OPAM. I would like to see the signature of this module, but where do I find this?

I have traversed the Async github repo but it was very unenlightening. How do I approach this problem?

This is the code I am looking at:

(* This file is in the public domain *)

(* open Core.Std *)
open Async.Std
(* open Cohttp_async *)
 
(* given filename: hello_world.ml compile with: 
   $ corebuild hello_world.native -pkg cohttp.async
*)
 
let handler ~body:_ _sock req =
  let uri = Cohttp.Request.uri req in
  match Uri.path uri with 
  | "/test" ->
       Uri.get_query_param uri "hello"
    |> Core.Std.Option.map ~f:(fun v -> "hello: " ^ v)
    |> Core.Std.Option.value ~default:"No param hello supplied"
    |> Cohttp_async.Server.respond_with_string
  | _ ->
    Cohttp_async.Server.respond_with_string ~code:`Not_found "Route not found"
 
let start_server port () =
  eprintf "Listening for HTTP on port %d\n" port;
  eprintf "Try 'curl http://localhost:%d/test?hello=xyz'\n%!" port;
  Cohttp_async.Server.create ~on_handler_error:`Raise
    (Tcp.on_port port) handler
  >>= fun _ -> Deferred.never ()

let () =
  Command.async_basic
    ~summary:"Start a hello world Async server"
    Command.Spec.(empty +>
      flag "-p" (optional_with_default 8080 int)
        ~doc:"int Source port to listen on"
    ) start_server
    
  |> Command.run
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.