假设我有一个OCaml库文件foo.cma.是否有一个命令行工具来打印函数的签名和那里定义的其他类型?ocamlbrowser实用程序似乎是基于Windows的(抱怨$ DISPLAY环境变量).用例是我正在做的:
ocamlc -c foo.cma main.ml
Run Code Online (Sandbox Code Playgroud)
得到:
File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.split
Run Code Online (Sandbox Code Playgroud)
ListUtil.split应该驻留在foo.cma中,但我不知道一个基于控制台的工具来验证它.
在Debian/Ubuntu上,你有"ocamlobjinfo":
ocamlobjinfo stdlib.cma
Run Code Online (Sandbox Code Playgroud)
将显示stdlib.cma中包含的所有单元名称.然后,您可以创建一个短文件:
include SomeModule
Run Code Online (Sandbox Code Playgroud)
并使用-i编译它以查看模块SomeModule中定义的内容.
在顶层,我只是加载cma文件:
#load "foo.cma";;
Run Code Online (Sandbox Code Playgroud)
然后我重新定义了一个模块,只是为了看到签名:
module Chunk = Foo;;
Run Code Online (Sandbox Code Playgroud)