Para cualquier archivo .hs, puede especificar las extensiones de lenguaje que se basan en este modo:Convención para especificar las extensiones en el proyecto cabalized
{-# LANGUAGE Foo, Bar, Baz #-}
Un proyecto cabalized también puede especificar extensiones de lenguaje en función de cada proyecto en el archivo .cabal:
extensions: Foo, Bar, Baz
¿Cuál de estas opciones se considera una "práctica recomendada"? ¿Deben todas las extensiones utilizadas enumerarse en el archivo .cabal, como una forma de documentar con qué compiladores es compatible su paquete? ¿O deberían anotarse todas las extensiones por archivo, para dejar en claro qué archivos dependen de qué extensiones? ¿Qué hay de documentar ampliamente en ambos lugares? ¿O es mejor práctica en algún lugar intermedio?
Entonces, ¿sería justo concluir por lo que usted ha dicho que la sección "extensiones" de un archivo .cabal no suele tomarse como un manifiesto independiente del cual los compiladores pueden compilar un paquete determinado? –
@ DanBurton: Sí, no lo interpretaría de esa manera; no sería un indicador útil para un programa que procesa el archivo Cabal, porque de todos modos nada le impide usar pragmas de 'IDIOMA', y para la documentación es más útil hacer una lista de cosas así en la documentación que ponerlas en el archivo Cabal, que es esencialmente parte del código. – ehird