Por que Haskell força a primeira letra do construtor de dados a ser maiúscula?

Dê um exemplo feio:

data Bighead = Big

little = 1 

f1 = little :: Int

f2 = Big :: BigHead

Na minha opinião

f1 ef2 todos apontam para alguns dados. o único diferente de little eBig) é pouco tem um pedaço de código para fazer avaliação. mas Big não.

odos eles têm um corpo regravável, pouco pode ser transformado de uma coleção de dados em um resultado, e Big simplesmente não executa o último passo - ele sempre mantém esses formulários de dados (mas recursivamente eles podem ser avaliados).

Mas na forma de sintaxe, eles são quase os mesmos: podem ser aplicados, podem ser avaliado

ma grande coisa pode ser que as funções não possam alterar seus parâmetros aplicados, mas os dados pode

Essa é a única razão pela qual Haskell trata os nomes de dados e funções de maneira diferent

Chamada para análise: -)

edit: mais algumas almofadas

data A = B Int

tipo deB:

B :: Int -> A

b :: Int -> A

b = B 

questionAnswers(3)

yourAnswerToTheQuestion