For the API compatibility issues, two points 1) I'd avoid exposing tuples in API at all, they are less self-descriptive than records 2) For optional parameters I'd rather used conditional compilation with [<Optional>] for C#, so C# users will never see FsharpOption<T> type
@Freymaurer as for second issue, I recommended to get rid of tuples in API like here. If you use records, there (like { label: string; value: float }, this can both eliminate compatibility issue and make API more clear.
I am not sure what to use for { label: string; value: float } in fsharp? Just a record type?
Can you give me more insight on this topic @Lanayx ?
Should improve C# accessibility, this would solve one of the two issues why a c# access layer is required!
A suggestion by Vladimir Shchur.
I am not sure what to use for
{ label: string; value: float }
in fsharp? Just a record type?Can you give me more insight on this topic @Lanayx ?