У кортежей есть ",", а у вариантов - аргументы Ctor. Это конструкторы, они создают вещи.
Шаблоны - деструкторы, они разрывают их на части.
Это двойственные понятия.
Чтобы сформулировать это более убедительно: понятие кортежа или варианта не может быть описано просто его конструктором: необходим деструктор или созданное вами значение бесполезно. Именно эти двойные описания определяют значение.
Обычно мы рассматриваем конструкторы как данные, а деструкторы - как поток управления. Деструкторы вариантов - это альтернативные ветви (одна из многих), деструкторы кортежей - параллельные потоки (все из многих).
Параллелизм очевиден в таких операциях, как
(f * g) . (h * k) = (f . h * g . k)
Если вы думаете о контроле, проходящем через функцию, кортежи предоставляют способ разделить вычисления на параллельные потоки управления.
С этой точки зрения выражения - это способы составления кортежей и вариантов для создания сложных структур данных (например, AST).
И сопоставление с образцом - это способ составить деструкторы (опять же, подумайте о AST).