[英]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.