Одним из огромных преимуществ на языках, которые имеют какое-то отражение/интроспекцию, является то, что объекты могут быть автоматически построены из разных источников.
Например, в Java я могу использовать те же объекты для сохранения в db (с Hibernate), сериализации в XML (с JAXB) и сериализации в JSON (json-lib). Вы можете сделать то же самое в Ruby и Python, как правило, следуя некоторым простым правилам для свойств или аннотаций для Java.
Таким образом, мне не нужно много "объектов переноса домена". Я могу сосредоточиться на домене, в котором я работаю.
Кажется, что в очень строгом FP, таком как Haskell и Ocaml, это невозможно. Особенно Хаскелл. Единственное, что я видел, это сделать некоторую предварительную обработку или метапрограммирование (ocaml). Принято ли вам, что вы должны делать все преобразования снизу вверх?
Другими словами, вам нужно сделать много скучной работы, чтобы превратить тип данных в haskell в объект JSON/XML/DB Row и снова вернуться в объект данных.