ocaml 中的预加载模块及其内容

pre-loaded module in ocaml, and their contents

两个问题:

  1. 如何找到我的 ocaml 会话中预加载的模块?
  2. 给定一个模块,如何列出其内容?

在 SML 中,标准 "trick" 是定义一个虚拟模块并在其中打开一个模块,我想检查其中的内容。然后,虚拟模块的签名将在 SML 中列出模块的内容。这在 ocaml 中不起作用。

发现:要查看预加载的包,使用#use "topfind";;使用topfind包,#list;;会列出预加载的包已加载包!

我不知道如何列出当前加载的模块。

显示模块的内容:

# #show_module Pervasives;;
module Pervasives :
  sig
    external raise : exn -> 'a = "%raise"
    external raise_notrace : exn -> 'a = "%raise_notrace"
    val invalid_arg : string -> 'a
    . . .
    val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
    val do_at_exit : unit -> unit
  end

初始的顶级指令集在 OCaml 手册的 Section 9.2 中给出。