Согласно заголовку, есть ли способ ограничить общую функцию F # типом объединения? Пока я использую:
let toDomain<'T> external: 'T option =
assert FSharpType.IsUnion(typeof<'T>)
...
Который терпит неудачу во время выполнения с System.ArgumentException, если я пытаюсь использовать не-объединение, но я бы предпочел проверку раньше.
let testThings = toDomain<MyModule.MappedThings> doExternalThings
. Чем это лучше, чемlet testThings = MyModule.MappedThings doExternalThings
? Собственный синтаксис F# короче вызова функции, который вам нужен, и безопасен для типов... - person Mark Seemann   schedule 17.02.2015