Может ли кто-нибудь объяснить мне, в чем разница между конструкторами данных / типов и функциями? Haskell смешивает их и дает нам универсальный интерфейс (все выглядит как функции, в частности, мы можем частично их применять), в то время как языки семейства ML различают их.