Это работает:
type ColumnAttribute() =
inherit System.Attribute()
let mutable index = 0
let mutable name = ""
member x.Index
with get() = index
and set value = index <- value
member x.Name
with get() = name
and set value = name <- value
type Substance = {
[<Column(Index=1)>] Name : string
[<Column(Index=0)>] Id : int
[<Column(Name="sequence")>] Sequence : string
}
Атрибуты уже поддерживают синтаксис установщика свойств, аналогичный именованным аргументам. Чтобы получить то, что вы хотите, используйте конструктор без параметров и полагайтесь на синтаксис атрибута вместо именованных аргументов (которые в любом случае плохо работают с атрибутами, потому что они выводятся как option
s ..., которые не подходят как константные выражения).