Em muitos anos de programação OO, entendi o que são sindicatos discriminados, mas nunca senti muita falta deles. Eu tenho feito recentemente alguma programação funcional em C # e agora acho que desejo continuar com eles. Isso me deixa desconcertante, porque, diante disso, o conceito de uniões discriminadas parece bastante independente da dicotomia funcional / OO.
Existe algo inerente à programação funcional que torna os sindicatos discriminados mais úteis do que seria no OO, ou é que, ao me forçar a analisar o problema de uma maneira "melhor", simplesmente aprimorei meus padrões e agora exijo uma melhor modelo?