OCaml:来自顶层父目录的未绑定模块

OCaml: Unbound module from parent directory in toplevel

我正在尝试将模块从父目录加载到顶级解释器中。

#load "../Syntax.cmo";;
open Syntax

let foo = bar

bar 在语法中的位置。我在父目录中有模块语法。 Loading module Syntax 不会导致任何问题,但是 open 行会抛出错误:

Error: Unbound module Syntax

我也试过删除 open:

#load "../Syntax.cmo";;
let foo = Syntax.bar

但这给了我与父目录中的 Syntax 相同的错误。

这附近有没有?

你不应该使用相对路径,而是使用 #directory 指令:

#directory "..";;
#load "Syntax.cmo";;
let foo = Syntax.bar;;

更好的是,使用 oasis 或其他一些高级工具定义您的库,并使用 #require 加载您的库,而不是处理低级指令。