Ocaml “绿洲”;选择性;内部模块的未绑定模块错误

Ocaml “绿洲”;选择性;内部模块的未绑定模块错误,ocaml,ocamlbuild,Ocaml,Ocamlbuild,我尝试使用Oasis编译一个小的OCaml[4.03.0+flambda]项目。我有四个模块,三个在modules字段中声明,一个使用InternalModules。我的_oasis配置文件是 内部模块名为中缀,包含一个子模块选项,该选项收集一些有用的中缀运算符来处理选项类型。在当前的github版本的代码中,一切都很好,我能够构建这个项目。无论如何,如果我在源文件agent.ml中添加行“open Infix.Option”,那么现在看起来 [..LICENSE..] open Lwt op

我尝试使用Oasis编译一个小的OCaml[4.03.0+flambda]项目。我有四个模块,三个在modules字段中声明,一个使用InternalModules。我的_oasis配置文件是

内部模块名为中缀,包含一个子模块选项,该选项收集一些有用的中缀运算符来处理选项类型。在当前的github版本的代码中,一切都很好,我能够构建这个项目。无论如何,如果我在源文件agent.ml中添加行“open Infix.Option”,那么现在看起来

[..LICENSE..]
open Lwt 
open Cohttp
open Cohttp_lwt_unix
open Infix.Option

type http_status_code = Cohttp.Code.status_code
type http_headers = Cohttp.Header.t
[..]
我得到以下错误

+ /home/yann/.opam/4.03.0+flambda/bin/ocamlfind ocamlc -c -g -annot -bin-annot -package cohttp -package cohttp.lwt -package lambdasoup -package lwt -package uri -I src -o src/agent.cmo src/agent.ml
File "src/agent.ml", line 23, characters 5-17:
Error: Unbound module Infix.Option

这是出乎意料的,特别是因为我当前的源文件page.ml执行相同的open操作,并且使用Infix.open运算符,没有任何问题或错误。我想知道发生了什么,为什么oasis会对agent.ml和page.ml进行不同的处理…

Lwt
有一个
Infix
模块,它会影响
Infix
模块。只需颠倒打开的顺序即可


请注意,打开
Lwt
通常被认为不是很好的样式。如果您想使用lwt的中缀操作符,您应该打开
lwt。中缀

lwt
有一个
中缀
模块,它会遮挡您的
中缀
模块。只需颠倒打开的顺序即可

请注意,打开
Lwt
通常被认为不是很好的样式。如果要使用lwt的中缀运算符,则应打开
lwt.infix