Les Tuples ont "," et Variantes ont Ctor args .. ce sont les constructeurs, ils créent des choses.
Les modèles sont des destructeurs, qu'ils déchirer leur part.
Ils sont deux concepts.
Pour mettre cela avec plus de force: la notion d'un tuple ou une variante ne peut être décrite simplement par son constructeur: le destructeur est nécessaire ou la valeur que vous faites est inutile. C'est à ces deux descriptions qui définissent une valeur.
Généralement, nous pensons que des constructeurs comme des données, et les destructeurs comme le contrôle de flux. Variante destructeurs sont autres branches (un des nombreux), tuple destructeurs sont fils parallèles (tous des nombreux).
Le parallélisme est évident dans des opérations comme
(f * g) . (h * k) = (f . h * g . k)
si vous pensez que de contrôle de l'écoulement au travers d'une fonction, les n-uplets de fournir une façon de diviser un calcul en parallèle des fils de contrôle.
Regardé de cette façon, les expressions sont des façons de composer des tuples et des variantes pour faire compliqué structures de données (penser à un AST).
Et les correspondances de modèle sont des façons de composer les destructeurs (encore une fois, pensez à un AST).