GHC-mod는 타입에 전체 이름을 사용해야합니까?


143

ghc-modvim 플러그인 을 사용하여 유형 / 구문 검사 등을 수행 하려고합니다 . 그러나 ghc-mod항상 오류 메시지에 유형의 전체 경로를 사용 한다는 것을 알았습니다 .

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

화면을 어지럽히고 잘못 된 부분을 찾기가 매우 어렵습니다. 이에 비해 이것은 다음을 사용하는 동일한 파일에 대한 오류 메시지입니다 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
...

훨씬 더 깨끗합니다. ghc-mod유형에 짧은 이름을 사용 하는 방법이 있습니까?


3
이것은 나를 위해 관찰 된 행동이 아닙니다. 아직도 이런 일이 일어나고 있습니까? 어떤 버전 ghcghc-mod당신이 사용하고 있습니까?
dkasak

3
위와 같이 출력을 생성하는 자체 포함 된 예제 (가져 오기 포함)가 있습니까? 나는 문제가 무엇인지 알 수 있다고 생각하지만, 출력
Alec

답변:


1

ghc-mod에서 다음과 같이 인수를 ghc에 전달할 수 있습니다.

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

이것은 인수 -dsuppress-module-prefixes를 ghc로 보냅니다 .


0

-dsuppress-module-prefixesGHC 옵션으로 전달해 볼 수 있습니다 . 언젠가 이름에서 모듈 한정자를 제거하는 데 도움이되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.