Как переводится variants и 'data matching' в применении к функциональным языкам программирования?
pattern matching — сопоставление образцов/шаблонов (практически везде такой перевод встречал)
А разве не подходит в данном контексте пряой перевод:
pattern matching — совпадение по действиям; по выполняемым операциям
variants — варианты

лаконично и смысл отображает)