4
이런 식으로 뭔가 내가하고 싶은 것입니다
튜플의 한면에 갈 선택할 때 :중복 인스턴스
data MyDataType = MyDataType
class HasSpecialField a where
specialField :: a -> ByteString
instance HasSpecialField a => HasSpecialField (a, b) where
specialField (a, b) = specialField a
instance HasSpecialField b => HasSpecialField (a, b) where
specialField (a, b) = specialField b
instance HasSpecialField MyDataType where
specialField _ = "Coolio"
이 같은 튜플이있는 경우입니다 :
myTuple :: (String, (Int, MyDataType))
당신은 수를 specialField myTuple
을 실행하여 "Coolio"를 반환하십시오.
어쨌든 이것을 할 수 있습니까?
: 그것은 불가능하지만 (예 : 깨끗한 방법으로 그것을 가능하게 할 제안이 있었다 : [인스턴스 체인 (http://web.cecs.pdx.edu/~jgmorris /)). 안타깝게도 현재 인스턴스 체인을 GHC에 추가하려는 작업은 없습니다. –