:: String -> Maybe a
newtype Helper a = Helper a
instance X a => SomeClass (Helper a) where ....
data DDD = ....
deriving SomeClass via (X DDD)
работает как надо. Но задумался, а как оно работает? Ведь методы SomeClass-а работают не с DDD, а с Helper DDD. Но оно как-то из инстанса для Helper DDD выводит инстанс для DDD. То есть он сркыто внизу использует как бы deriving newtype? На нем получается базируется deriving via? А если Helper не newtype, а data? Тогда он как выведет?
так хм via X DDD это странно
Обсуждают сегодня