AP
Size: a a a
AP
E
AP
E
AP
(parse x :: Parser X)пишете
parse @X xE
E
AP
newtype ChoiceBetween a b = ChoiseBetween (Either a b)
instance (FromJSON a, FromJSON b) => FromJSON (ChoiceBetween a b) where
parseJSON v =
ChoiceBetween <$> (
(Left <$> parseJSON v)
<|>
(Right <$> parseJSON v)
)AP
E
AP
ChoiceBetween Int Int всегда будет декодировать в первый вариант. Инстанс для Either использует явные метки, поэтому там попроще, но ценой усложнения структуры JSONНА
AP
E
E
E

E
E
[
E