相关疑难解决方法(0)

OCaml类型声明中的冗余(ml/mli)

我正在尝试理解关于ocaml模块及其编译的具体事项:

我是否被迫重新声明已在.mli特定.ml实现中声明的类型?

举个例子:

(* foo.mli *)
type foobar = Bool of bool | Float of float | Int of int

(* foo.ml *)
type baz = foobar option
Run Code Online (Sandbox Code Playgroud)

根据我对接口/实现的正常思考方式,这应该没问题,但它说

错误:未绑定的类型构造函数foobar

在尝试编译时

ocamlc -c foo.mli
ocamlc -c foo.ml
Run Code Online (Sandbox Code Playgroud)

当然,如果我申报错误消失foobar里面foo.ml太多,但它似乎是一个复杂的方式,因为我要保持同步的东西在每一个变化.

有没有办法避免这种冗余,或者我每次都被迫重新声明类型?

提前致谢

ocaml module interface declaration

32
推荐指数
3
解决办法
7791
查看次数

标签 统计

declaration ×1

interface ×1

module ×1

ocaml ×1