Предположим, у меня есть такой проект:
// Types.fs
namespace App
type Foo =
{
X : int
}
// Foo.fs
module App.Foo
let doubleIt (foo : Foo) =
{
X = foo.X * 2
}
Тогда я получаю такую ошибку:
Types.fs (3,6): ошибка FS0250: модуль и определение типа с именем «Foo» встречаются в пространстве имен «App» в двух частях этой сборки.
Однако, если я помещаю все в один файл, он работает:
// Everything.fs
namespace App
type Foo =
{
X : int
}
module Foo =
let doubleIt (foo : Foo) =
{
X = foo.X * 2
}
Но мне это кажется одним и тем же; и я не хочу собирать все в один большой файл.
- Что тут происходит?
- Почему я не могу поместить модуль в другой файл?
- Как можно идиоматически организовать этот код?
dotnet --version
3.1.403