haskell - Cómo usar "main" no se define en el módulo "Main" cuando se utiliza syntastic
(1)
Pruebas con ghc-mod
(que respalda syntastic, aunque hdevtools también es posible):
$ cat test1.hs
f :: Int -> Int
f x = x + 1
$ ghc-mod check test.hs
test1.hs:1:1:The IO action ''main'' is not defined in module ''Main''
$ cat test2.hs
module Test where
f :: Int -> Int
f x = x + 1
$ ghc-mod check test.hs
$
Así que solo puede poner una declaración de módulo ficticio en su archivo y la advertencia desaparecerá.
La razón por la que aparece esta advertencia es porque, de forma predeterminada, en Haskell, cualquier módulo no declarado tiene el nombre Main
. Dado que no ha definido un main :: IO ()
y el nombre del módulo es implícitamente, Main
ghc-mod lanza una advertencia. Si declara que es algo distinto a Main
, ghc-mod piensa que solo está exportando todo en el módulo, ya que todo se exporta implícitamente desde un módulo.
Estoy tratando de escribir un módulo en Haskell. No tiene un main
porque no pretende ser un programa independiente.
Acabo de empezar a usar syntastic, y está informando constantemente:
The IO action ‘main’ is not defined in module ‘Main’
Esto está impidiendo que informe otros errores reales en mi módulo. Si trato de solucionar esto agregando un dummy principal, comienza a quejarse de que todo lo demás está "Definido pero no usado".
¿Cómo puedo decirle a syntastic (y al comprobador que esté utilizando debajo de las cubiertas) que no se supone que haya un main
?