Для чего вы наиболее часто применяете алгебраические типы? С т.з. плюсовика, я в целом понимаю, что они делают, но не вижу, как бы их полезно применять. Допустим, если бы алгебраические типы были в С++ (полагаю что-то подобное можно на шаблонах сделать), для чего бы их использовать, с учётом того, что существует плюсовое ООП и если встроенное в язык ООП позволяет довольно лёгко решить задачу, то с помощью такого ООП и лучше её решать.