type circle = {x: float; y : float; radius: float} type rectangle = {x: float; y : float; width: float; height: float} type shape = Circle of circle | Rectangle of rectangle
У самих circle и rectangle нет конструктора, а shape надо сперва сматчить, чтобы получить доступ к полям
А вообще рекорды с кучей полей это не антипаттерн в ФП? Даже в ООП класс с кучей членов это антипаттерн вроде как, типа как в структурном программировании процедура на сотни строк