Eu sei que Haskell já tem a capacidade de parametrizar um tipo sobre outro tipo (semelhante à programação de modelos em C ++), mas estou me perguntando se Haskell também pode parametrizar um tipo sobre valores - se ele suporta tipos dependentes. Com tipos dependentes, você pode ter um tipo parametrizado sobre números inteiros, por exemplo, vetores de tamanho n, matrizes de tamanho n × m, etc.
Se não, por que não? E existe alguma possibilidade de que seja suportado no futuro?
Para expandir um pouco o que o Flame de Ptharien explicou bem sobre o status atual - e GHC Haskell parece estar se movendo mais na direção dos tipos dependentes (preservando a separação de fases) em cada versão.
Assim, por exemplo, no ICFP 2013, em setembro, deve ser apresentado um documento sobre a próxima fase deste processo, "Em direção a Haskell de tipo dependente: Sistema FC com igualdade de gênero" , sobre o colapso dos níveis de tipo e tipo. Como foi anunciado o plano há cerca de 3 anos .
E até menciona o próximo passo: "Também estamos cientes de que a dissertação de Adam Gundry incluirá tipos Π em uma versão do System FC e também queremos disponibilizar esse recurso no idioma de origem. (Comunicação pessoal)"
fonte
Tradicionalmente, Haskell tentou falsificá-lo, mas o resultado final é um sistema de tipos muito maior e aparentemente repetitivo. Mas isso pode mudar em breve! Vejo:
fonte