У меня есть дискриминированный союз, который я хочу использовать в качестве аргумента для функции, которую я раскрываю в файле подписи. В настоящее время у меня есть код, определенный следующим образом:
Signature.fsi:
type Union =
| Part of string
| Part2 of int
val Func: Union -> unit
С определением Func в отдельном файле fs.
Проблема в том, что когда я делаю это, файл fs не может подобрать определение Union, поэтому код, который создает значение Part или Part2, завершается ошибкой. Если я снова не определю объединение в файле fs, который использует объединение.
Так, например:
Signature.fs:
type Union =
| Part of string
| Part2 of int
let Func input:Union =
ignore
OtherFile.fs
type Union =
| Part of string
| Part2 of int
let DoSomething =
Func(Part("Test"))
Без переопределения Союза каждый раз, когда это терпит неудачу. Я что-то упустил очевидное? Я все еще довольно зеленый, когда дело доходит до F #.