私がやりたいことは次のようなものです:
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
して「クーリオ」を返すことができます。
とにかくこれを行うことはありますか?