F# 两个班,获得;“未定义类型”;错误

F# 两个班,获得;“未定义类型”;错误,f#,F#,我有两个类,Foo和Bar,两个不同的文件,Foo.fs和Bar.fs namespace Ganymede.Versioning type foo = class val Bar : bar new(input) = { Bar = input } end namespace Ganymede.Versioning type bar = class val Test : string new (input) = { Test = inp

我有两个类,Foo和Bar,两个不同的文件,Foo.fs和Bar.fs

namespace Ganymede.Versioning

type foo = class 
    val Bar : bar
    new(input) = { Bar = input }    
    end


namespace Ganymede.Versioning

type bar = class
    val Test : string
    new (input) = { Test = input; }
    end
我得到一个“类型'bar'未定义。”类foo中的错误,对于
val-bar:bar


为什么会这样?

请参见,但简单地说,如果不在文件顶部指定名称空间或模块,则代码将隐式放入以文件名命名的模块中。因此,如果您的项目包含bar.fs和foo.fs(按顺序,顺序很重要),那么要从文件“foo.fs”引用名为“bar”的类型,必须使用“bar.bar”(其中第一个是模块名,第二个是类型名)。

项目中的文件必须按依赖项排序,所以你需要在项目中把bar.fs放在foo.fs上面,这样
foo
就可以看到
bar

,但是正如你所看到的,我定义了一个名称空间?!(哦,很抱歉没有注意到名称空间。)这两个文件在项目中的顺序正确吗?