繁体   English   中英

OASIS内部模块的“选择性”未绑定模块错误

[英]OASIS “Selective” Unbound module error for an internal module

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

内部模块名为Infix,它包含一个子模块Option,该子模块收集一些有用的infix运算符以处理选项类型。 这里的代码的当前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执行相同的打开操作并使用Infix.Open运算符而没有任何问题或错误。 我想知道发生了什么,为什么绿洲对agent.ml和page.ml的处理方式有所不同...

Lwt有一个Infix模块,可Lwt您的Infix模块。 只需反转打开顺序即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM