How do I locate .mli files from OPAM modules?
| 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