Обе концепции позволяют создавать новые типы данных. Единственное отличие, которое я вижу, заключается в том, что в функциональных языках можно выполнять сопоставление с образцом для алгебраических типов данных. Но для объектно-ориентированных языков нет сопоставимой лаконичной функции. Это точное утверждение?