현재 행동
Prelude> show _
<interactive>:7:6:
Found hole ‘_’ with type: a0
Where: ‘a0’ is an ambiguous type variable
Relevant bindings include it :: String (bound at <interactive>:7:1)
In the first argument of ‘show’, namely ‘_’
In the expression: show _
In an equation for ‘it’: it = show _
원하는 행동
GHC가 형식화 된 구멍에 Show
형식 클래스 제약 조건 이 있다고 말해 주면 좋을 것 입니다.
기타
GHC 버전 7.8.1
16
AFAIK, 이것은 현재 가능하지 않지만 확실히 유용 할 것입니다. 이를 위해 GHC 버그 추적기에서 기능 요청을 열 가치가있을 수 있습니다.
—
kosmikus 2014
이것이 유용 할 것이라는 데 동의합니다. GHC trac에 대한 기능 요청으로보고했습니다. ghc.haskell.org/trac/ghc/ticket/9479
—
Dominique Devriese
지금은 pre-type-holes 트릭을 사용할 수 있습니다.
—
phadej 2014
show (undefined :: () -> ())
; GHC는 유형 검사 오류에 대해 자세히 알려줍니다.
기능 요청입니까, 아니면 실제 질문입니까? 즉, 원하는대로 GHC를 만들 수있는 방법이 없다는 것을 알고 있습니까? 아니면 현재 컴파일러로 원하는 것을 얻을 수있는 가능성이 있지만 어떻게해야할지 모르겠습니까?
—
stakx-더 이상
@stakx 둘 다 약간입니다. 원래이 질문을 작성할 때 GHC가 유형 클래스 제약 조건을 제공하지 않는 이유를 혼란스럽게했으며 유형이 지정된 구멍을 잘못 사용하고 있다고 생각했습니다. 그런 다음 일부는 현재 이것이 가능하지 않지만 GHC에 추가 될 수 있다고 말했습니다. 그래서 곧 추가 되길 바랬습니다. 많은 사람들이 그것을 사용하고 싶어하는 것 같습니다. phadej의 트릭은 그동안 작동하는 것처럼 보이지만 형식화 된 홀 기반 솔루션만큼 우아하거나 사용하기 쉽지는 않습니다.
—
Wizek