1
올바른 용어를 얻길 바랍니다.constrained existentially qualified higher order 유형에 대한 매핑
data Hide a = ∀ b. (A.ToJSON (a b), A.ToJSON b) ⇒ Hide (a b)
mapHide ∷ (∀ c. (A.ToJSON (b c), A.ToJSON c) ⇒ a c → b c) → Hide a → Hide b
mapHide f (Hide a) = (Hide $ f a)
불행하게도, GHC는 겉으로는 바로 제약을 infere과 함께 불평 할 수 없습니다 :
Could not deduce (A.ToJSON (b b1)) arising from a use of ‘Hide’
from the context (A.ToJSON (a b1), A.ToJSON b1)
이 어떻게 든 가능
나는 다음을 수행 할?
'$'를 보통 괄호로 변경하십시오. – Clinton
이것은 불가능합니다. 오류 메시지에 의해 제안 된 것처럼,'f' 함수는'(HideAs)'에 패턴 매칭에 의해 제공되지 않는'(ToJSON (b b1))'제약 조건을 필요로합니다. 오류 메시지의 "컨텍스트"는 실제로 제공된 제약 조건을 제공합니다. 당신이하려는 일에 대해 더 자세히 설명해 주시겠습니까? –
궁극적으로 나는'A.ToJSON (a b)'제약 조건을 제거함으로써 작동하도록했습니다. –