I am trying to get a deeper understanding of the concepts behind Opa. In particular, I'm curious about the decision not to provide discriminated unions like in ML or Haskell (i.e. to define several constructors which wrap zero or more values), but stay with the record types and sum types of them. This decision makes total sense to me (maybe because I am more into OOP than FP), and it seems that one can implement everything that could be done with discriminated union.
However, can we say that the language still supports algebraic data types then? This one is not a practical question but rather one about terminology.
Btw, Wikipedia says yes, maybe it should be corrected.