Ocaml:错误 - 此表达式的类型为x,但与x类型一起使用

Nic*_*ner 6 ocaml tuareg

这是我的错误:

Error: This expression has type nfa but is here used with type nfa
Run Code Online (Sandbox Code Playgroud)

可能会发生什么导致这种情况?我正在使用emacs tuareg,并逐个加载评估文件.有时会发生这种情况,有时却不会发生.

Dav*_*haw 10

ocaml教程中有一个很好的描述.发生了什么事情是你用一个新的定义遮蔽了一个类型定义:

type nfa = int
let f (x: nfa) = x

type nfa = int
let g (x: nfa) = x
Run Code Online (Sandbox Code Playgroud)

重新启动顶级将清除旧的定义.