GHC-mod, türler için tam adlar kullanmak zorunda mıdır?


143

Ben kullanmaya çalışıyorum ghc-modAncak vb kontrol türü / sözdizimi yapmak vim eklenti, bunu buldum ghc-modhep, örneğin hata mesajlarında türleri tam yollarını kullanır:

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
...

hangi ekranı tıkar ve nerede yanlış gittiğini bulmak benim için çok zor. Karşılaştırma olarak, bu aynı dosya için kullanılan hata iletisidir 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
...

çok daha temiz. ghc-modTürler için kısa isimler kullanmanın bir yolu var mı ?


3
Bu benim için gözlemlenen davranış değil. Bu hala senin için mi oluyor? Hangi sürümleri ghcve ghc-modkullanıyorsunuz?
dkasak

3
Yukarıdaki gibi çıktı üreten bağımsız bir örneğiniz var mı (ithalat dahil)? Sanırım sorunun ne olabileceği hakkında bir fikrim var, ama sadece çıktıdan söylemek biraz zor ...
Alec

Yanıtlar:


1

Ghc-mod'dan argümanı ghc'ye şu şekilde aktarabilirsiniz:

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

Bu, argümanı -dsuppress-module-prefixesghc'ye gönderir .


0

-dsuppress-module-prefixesGHC seçeneği olarak geçmeyi deneyebilirsiniz . Bir noktada, modül niteleyicilerinden isimlerden kurtulmama yardımcı oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.