usar tipos prelude opciones hacer ejemplos desarrolle datos con como comandos cadenas biblioteca haskell ghc ghc-mod

haskell - prelude - ¿GHC-mod tiene que usar nombres completos para los tipos?



tipos de datos haskell (2)

Estoy tratando de usar el ghc-mod vim para hacer una verificación de tipo / sintaxis, etc. Sin embargo, descubrí que ghc-mod siempre usa rutas completas de tipos en los mensajes de error, por ejemplo:

test.hs|71 col 13 error| Couldn''t match type ‘Data.Text.Internal.Text’ || with ‘[GHC.Types.Char]’ || Expected type: containers-0.5.6.2:Data.Map.Base.Map || [GHC.Types.Char] || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || Actual type: containers-0.5.6.2:Data.Map.Base.Map || Data.Text.Internal.Text || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || In the second argument of ‘containers-0.5.6.2:Data.Map.Base.map’, namely || ‘zippedMap’ || In the second argument of ‘(GHC.Base.$)’, namely || ‘containers-0.5.6.2:Data.Map.Base.map ...

que abarrota la pantalla y es muy difícil para mí averiguar dónde salió mal. Como comparación, este es el mensaje de error para el mismo archivo usando ghci :

test.hs:71:13: Couldn''t match type ‘T.Text’ with ‘[Char]’ Expected type: M.Map [Char] ([(Integer, Integer)], S.Set Integer) Actual type: M.Map T.Text ([(Integer, Integer)], S.Set Integer) In the second argument of ‘M.map’, namely ‘zippedMap’ In the second argument of ‘($)’, namely ‘M.map ...

Que es mucho más limpio. ¿Hay alguna manera de hacer que ghc-mod use nombres cortos para los tipos?


Puede intentar pasar -dsuppress-module-prefixes como una opción de GHC. En algún momento, me ayudó a deshacerme de los calificadores de módulo en los nombres.


Puede pasar el argumento a ghc desde ghc-mod como:

$ ghc-mod lint *.hs -g -dsuppress-module-prefixes

Esto enviará el argumento -dsuppress-module-prefixes a ghc.