Элементы в кортежах не имеют имен, а это значит, что у вас часто нет четкого способа документировать значения каждого элемента.
Например, в этом дискриминационном объединении:
type NetworkEvent =
| Message of string * string * string
| ...
Я хочу дать понять, что первый и второй элементы являются именами отправителя и получателя соответственно. Хорошая практика - сделать что-то вроде этого:
type SenderName = string
type RecipientName = string
type NetworkEvent =
| Message of SenderName * RecipientName * string
| ...
Многие библиотеки C/С++ имеют множество типов (например, win32.h), но на этих языках, хотя имена параметров необязательны во многих случаях, это все равно можно сделать. Это не относится к F #.