Я использую пакет aeson. У меня есть тип данных, который использует Data.Tree в своем объявлении. Как и ниже, только сложнее:
data Foo = Foo {
bat :: Text
, xux :: Maybe Text
, tri :: Tree Text
}
Я хочу использовать Data.Aeson.TH для создания экземпляра FromJSON для этого типа.
$(deriveJSON defaultOptions ''Foo)
Но Data.Tree не имеет стандартного экземпляра для FromJSON, что означает, что мне нужно будет объявить сиротский instace.
Есть ли способ избежать создания этого сиротского экземпляра, хотя он все еще может использовать deriveJSON?