Чтение "Реальный мир Haskell" я нашел интересный вопрос о типах данных:
Это соответствие шаблонов и позиционирование доступ к данным, похоже, что у вас есть очень плотная связь между данными и код, который работает на нем (попробуйте добавить что-то бросить или, что еще хуже, изменить тип существующей части).
Это, как правило, очень плохо в императив (особенно OO) Языки... не рассматривается как проблема в Haskell? источник в комментариях RWH
И действительно, написав некоторые программы Haskell, я обнаружил, что когда я делаю небольшие изменения в структуре типа данных, это затрагивает почти все функции, которые используют этот тип данных. Возможно, есть несколько хороших практик использования данных. Как я могу свести к минимуму сцепление кода?