类型'NS.Type1 <ns.type2>'与f#</ns.type2> </ns.type2>中的类型'NS.Type1 <ns.type2>'不兼容

时间:2012-04-04 17:40:26

标签: f# compiler-errors

我刚刚在几个库中拆分了一个项目。 我在标题中有一个奇怪的错误。

我无法解释为什么会这样。 此外,此错误以前只显示在FSI.exe

我认为这是因为pb在fsi中加载dll但是还有更多内容。

这可能是一个愚蠢的错误(可能是..)但如果有人在此之前遇到过这个sybillin错误信息并知道会发生什么,我会很高兴听到它。

更新

我认为这是名称空间问题,但事实并非如此。 这个问题很奇怪。如果你没有经历过,请忽略它。我仍然试图找出确切的起源。

1 个答案:

答案 0 :(得分:3)

如果没有更多信息,很难确定。这种情况的一种方式是,如果你最终重新定义FSI中的类型而不重新定义一些依赖它的东西。然后那些东西期望旧版本的类型,但你最终创建新版本的实例,这是不兼容的。例如,给定此代码:

type MyType<'a>() = class end
let myFun (_:MyType<int>) = 0

let result = myFun (MyType())

如果我将前两行发送到FSI,然后再将第一行发送到第一行,然后再发送第三行,我会收到与您的错误消息类似的内容。解决方案是重新评估所有相关定义。