composite-aeson 0.1.1.0 → 0.2.0.0
raw patch · 15 files changed
+1023/−134 lines, 15 filesdep +Framesdep +QuickCheckdep +aeson-qqPVP ok
version bump matches the API change (PVP)
Dependencies added: Frames, QuickCheck, aeson-qq, composite-aeson, hspec, tagged, template-haskell, time, vector
API changes (from Hackage documentation)
- Composite.Aeson.Base: wrappedFormat :: Wrapped a => JsonFormat e (Unwrapped a) -> JsonFormat e a
- Composite.Aeson.Default: abeJsonFormat :: ToJSON a => Parse e a -> JsonFormat e a
- Composite.Aeson.Default: aesonArrayJsonFormat :: JsonFormat e Array
- Composite.Aeson.Default: aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a
- Composite.Aeson.Default: aesonObjectJsonFormat :: JsonFormat e Object
- Composite.Aeson.Default: aesonValueJsonFormat :: JsonFormat e Value
- Composite.Aeson.Default: boolJsonFormat :: JsonFormat e Bool
- Composite.Aeson.Default: charJsonFormat :: JsonFormat e Char
- Composite.Aeson.Default: class DefaultJsonFormat a
- Composite.Aeson.Default: defaultJsonFormat :: DefaultJsonFormat a => JsonFormat e a
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat Data.Aeson.Types.Internal.Array
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat Data.Aeson.Types.Internal.Object
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat Data.Aeson.Types.Internal.Value
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat Data.Scientific.Scientific
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat Data.Text.Internal.Text
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Base.String
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Int.Int16
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Int.Int32
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Int.Int64
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Int.Int8
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Types.Bool
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Types.Char
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Types.Double
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Types.Float
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Types.Int
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Word.Word16
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Word.Word32
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Word.Word64
- Composite.Aeson.Default: instance Composite.Aeson.Default.DefaultJsonFormat GHC.Word.Word8
- Composite.Aeson.Default: integralJsonFormat :: Integral a => JsonFormat e a
- Composite.Aeson.Default: nullJsonFormat :: JsonFormat e ()
- Composite.Aeson.Default: realFloatJsonFormat :: RealFloat a => JsonFormat e a
- Composite.Aeson.Default: realFloatToJson :: RealFloat a => a -> Value
- Composite.Aeson.Default: scientificJsonFormat :: JsonFormat e Scientific
- Composite.Aeson.Default: stringJsonFormat :: JsonFormat e String
- Composite.Aeson.Default: textJsonFormat :: JsonFormat e Text
- Composite.Aeson.Record: instance (Composite.Base.NamedField r, Composite.Aeson.Default.DefaultJsonFormat (Control.Lens.Wrapped.Unwrapped r), Composite.Aeson.Record.DefaultJsonFormatRec rs) => Composite.Aeson.Record.DefaultJsonFormatRec (r : rs)
+ Composite.Aeson.Base: wrappedJsonFormat :: Wrapped a => JsonFormat e (Unwrapped a) -> JsonFormat e a
+ Composite.Aeson.DateTimeFormatUtils: fixupMs :: String -> String
+ Composite.Aeson.DateTimeFormatUtils: fixupTzIn :: String -> String
+ Composite.Aeson.DateTimeFormatUtils: fixupTzOut :: String -> String
+ Composite.Aeson.Formats.DateTime: DateTimeFormat :: String -> String -> (String -> String) -> (String -> String) -> DateTimeFormat
+ Composite.Aeson.Formats.DateTime: [dateTimeFormatExample] :: DateTimeFormat -> String
+ Composite.Aeson.Formats.DateTime: [dateTimeFormatPostFormat] :: DateTimeFormat -> String -> String
+ Composite.Aeson.Formats.DateTime: [dateTimeFormatPreParse] :: DateTimeFormat -> String -> String
+ Composite.Aeson.Formats.DateTime: [dateTimeFormat] :: DateTimeFormat -> String
+ Composite.Aeson.Formats.DateTime: data DateTimeFormat
+ Composite.Aeson.Formats.DateTime: dateTimeJsonFormat :: (ParseTime t, FormatTime t) => TimeLocale -> NonEmpty DateTimeFormat -> JsonFormat e t
+ Composite.Aeson.Formats.DateTime: instance GHC.Base.Applicative Composite.Aeson.Formats.DateTime.SuccessOrFail
+ Composite.Aeson.Formats.DateTime: instance GHC.Base.Functor Composite.Aeson.Formats.DateTime.SuccessOrFail
+ Composite.Aeson.Formats.DateTime: instance GHC.Base.Monad Composite.Aeson.Formats.DateTime.SuccessOrFail
+ Composite.Aeson.Formats.DateTime: iso8601DateJsonFormat :: JsonFormat e Day
+ Composite.Aeson.Formats.DateTime: iso8601DateTimeJsonFormat :: JsonFormat e UTCTime
+ Composite.Aeson.Formats.DateTime: iso8601TimeJsonFormat :: JsonFormat e TimeOfDay
+ Composite.Aeson.Formats.DateTime: regularDateTimeFormat :: String -> String -> DateTimeFormat
+ Composite.Aeson.Formats.Default: class DefaultJsonFormat a where defaultJsonFormatList = listJsonFormat defaultJsonFormat
+ Composite.Aeson.Formats.Default: defaultJsonFormat :: DefaultJsonFormat a => JsonFormat e a
+ Composite.Aeson.Formats.Default: defaultJsonFormatList :: DefaultJsonFormat a => JsonFormat e [a]
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540, Composite.Aeson.Formats.Default.DefaultJsonFormat a550) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540, a550)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540, Composite.Aeson.Formats.Default.DefaultJsonFormat a550, Composite.Aeson.Formats.Default.DefaultJsonFormat a560) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540, a550, a560)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540, Composite.Aeson.Formats.Default.DefaultJsonFormat a550, Composite.Aeson.Formats.Default.DefaultJsonFormat a560, Composite.Aeson.Formats.Default.DefaultJsonFormat a570) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540, a550, a560, a570)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540, Composite.Aeson.Formats.Default.DefaultJsonFormat a550, Composite.Aeson.Formats.Default.DefaultJsonFormat a560, Composite.Aeson.Formats.Default.DefaultJsonFormat a570, Composite.Aeson.Formats.Default.DefaultJsonFormat a580) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540, a550, a560, a570, a580)
+ Composite.Aeson.Formats.Default: instance (Composite.Aeson.Formats.Default.DefaultJsonFormat a10, Composite.Aeson.Formats.Default.DefaultJsonFormat a20, Composite.Aeson.Formats.Default.DefaultJsonFormat a30, Composite.Aeson.Formats.Default.DefaultJsonFormat a40, Composite.Aeson.Formats.Default.DefaultJsonFormat a50, Composite.Aeson.Formats.Default.DefaultJsonFormat a60, Composite.Aeson.Formats.Default.DefaultJsonFormat a70, Composite.Aeson.Formats.Default.DefaultJsonFormat a80, Composite.Aeson.Formats.Default.DefaultJsonFormat a90, Composite.Aeson.Formats.Default.DefaultJsonFormat a100, Composite.Aeson.Formats.Default.DefaultJsonFormat a110, Composite.Aeson.Formats.Default.DefaultJsonFormat a120, Composite.Aeson.Formats.Default.DefaultJsonFormat a130, Composite.Aeson.Formats.Default.DefaultJsonFormat a140, Composite.Aeson.Formats.Default.DefaultJsonFormat a150, Composite.Aeson.Formats.Default.DefaultJsonFormat a160, Composite.Aeson.Formats.Default.DefaultJsonFormat a170, Composite.Aeson.Formats.Default.DefaultJsonFormat a180, Composite.Aeson.Formats.Default.DefaultJsonFormat a190, Composite.Aeson.Formats.Default.DefaultJsonFormat a200, Composite.Aeson.Formats.Default.DefaultJsonFormat a210, Composite.Aeson.Formats.Default.DefaultJsonFormat a220, Composite.Aeson.Formats.Default.DefaultJsonFormat a230, Composite.Aeson.Formats.Default.DefaultJsonFormat a240, Composite.Aeson.Formats.Default.DefaultJsonFormat a250, Composite.Aeson.Formats.Default.DefaultJsonFormat a260, Composite.Aeson.Formats.Default.DefaultJsonFormat a270, Composite.Aeson.Formats.Default.DefaultJsonFormat a280, Composite.Aeson.Formats.Default.DefaultJsonFormat a290, Composite.Aeson.Formats.Default.DefaultJsonFormat a300, Composite.Aeson.Formats.Default.DefaultJsonFormat a310, Composite.Aeson.Formats.Default.DefaultJsonFormat a320, Composite.Aeson.Formats.Default.DefaultJsonFormat a330, Composite.Aeson.Formats.Default.DefaultJsonFormat a340, Composite.Aeson.Formats.Default.DefaultJsonFormat a350, Composite.Aeson.Formats.Default.DefaultJsonFormat a360, Composite.Aeson.Formats.Default.DefaultJsonFormat a370, Composite.Aeson.Formats.Default.DefaultJsonFormat a380, Composite.Aeson.Formats.Default.DefaultJsonFormat a390, Composite.Aeson.Formats.Default.DefaultJsonFormat a400, Composite.Aeson.Formats.Default.DefaultJsonFormat a410, Composite.Aeson.Formats.Default.DefaultJsonFormat a420, Composite.Aeson.Formats.Default.DefaultJsonFormat a430, Composite.Aeson.Formats.Default.DefaultJsonFormat a440, Composite.Aeson.Formats.Default.DefaultJsonFormat a450, Composite.Aeson.Formats.Default.DefaultJsonFormat a460, Composite.Aeson.Formats.Default.DefaultJsonFormat a470, Composite.Aeson.Formats.Default.DefaultJsonFormat a480, Composite.Aeson.Formats.Default.DefaultJsonFormat a490, Composite.Aeson.Formats.Default.DefaultJsonFormat a500, Composite.Aeson.Formats.Default.DefaultJsonFormat a510, Composite.Aeson.Formats.Default.DefaultJsonFormat a520, Composite.Aeson.Formats.Default.DefaultJsonFormat a530, Composite.Aeson.Formats.Default.DefaultJsonFormat a540, Composite.Aeson.Formats.Default.DefaultJsonFormat a550, Composite.Aeson.Formats.Default.DefaultJsonFormat a560, Composite.Aeson.Formats.Default.DefaultJsonFormat a570, Composite.Aeson.Formats.Default.DefaultJsonFormat a580, Composite.Aeson.Formats.Default.DefaultJsonFormat a590) => Composite.Aeson.Formats.Default.DefaultJsonFormat (a10, a20, a30, a40, a50, a60, a70, a80, a90, a100, a110, a120, a130, a140, a150, a160, a170, a180, a190, a200, a210, a220, a230, a240, a250, a260, a270, a280, a290, a300, a310, a320, a330, a340, a350, a360, a370, a380, a390, a400, a410, a420, a430, a440, a450, a460, a470, a480, a490, a500, a510, a520, a530, a540, a550, a560, a570, a580, a590)
+ Composite.Aeson.Formats.Default: instance (Data.Aeson.Types.FromJSON.FromJSONKey k, Data.Aeson.Types.ToJSON.ToJSONKey k, GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Data.Aeson.Types.FromJSON.FromJSON a, Data.Aeson.Types.ToJSON.ToJSON a) => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.HashMap.Base.HashMap k a)
+ Composite.Aeson.Formats.Default: instance (Data.Aeson.Types.FromJSON.FromJSONKey k, Data.Aeson.Types.ToJSON.ToJSONKey k, GHC.Classes.Ord k, Data.Aeson.Types.FromJSON.FromJSON a, Data.Aeson.Types.ToJSON.ToJSON a) => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Map.Base.Map k a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat ()
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat CorePrelude.LText
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Aeson.Types.Internal.Value
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.IntSet.Base.IntSet
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Monoid.All
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Monoid.Any
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Scientific.Scientific
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Text.Internal.Text
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat Data.Version.Version
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Int.Int16
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Int.Int32
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Int.Int64
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Int.Int8
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Integer.Type.Integer
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Natural.Natural
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Bool
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Char
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Double
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Float
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Int
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Ordering
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Types.Word
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Word.Word16
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Word.Word32
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Word.Word64
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat GHC.Word.Word8
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Functor.Identity.Identity a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.List.NonEmpty.NonEmpty a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.Dual a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.First a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.Last a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.Product a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.Sum a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.First a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.Last a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.Max a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.Min a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.Option a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Semigroup.WrappedMonoid a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Sequence.Seq a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Vector.Vector a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (GHC.Base.Maybe a)
+ Composite.Aeson.Formats.Default: instance Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat [a]
+ Composite.Aeson.Formats.Default: instance forall k (f :: k -> *) (a :: k). Composite.Aeson.Formats.Default.DefaultJsonFormat (f a) => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Monoid.Alt f a)
+ Composite.Aeson.Formats.Default: instance forall k a (b :: k). Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Functor.Const.Const a b)
+ Composite.Aeson.Formats.Default: instance forall k a (b :: k). Composite.Aeson.Formats.Default.DefaultJsonFormat a => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Tagged.Tagged b a)
+ Composite.Aeson.Formats.Default: instance forall k k1 (f :: k1 -> *) (g :: k -> k1) (a :: k). Composite.Aeson.Formats.Default.DefaultJsonFormat (f (g a)) => Composite.Aeson.Formats.Default.DefaultJsonFormat (Data.Functor.Compose.Compose f g a)
+ Composite.Aeson.Formats.Generic: SumStyleFieldName :: SumStyle
+ Composite.Aeson.Formats.Generic: SumStyleMergeType :: Text -> SumStyle
+ Composite.Aeson.Formats.Generic: SumStyleTypeValue :: Text -> Text -> SumStyle
+ Composite.Aeson.Formats.Generic: abeJsonFormat :: ToJSON a => Parse e a -> JsonFormat e a
+ Composite.Aeson.Formats.Generic: aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a
+ Composite.Aeson.Formats.Generic: data SumStyle
+ Composite.Aeson.Formats.Generic: jsonArrayFormat :: (t -> [a]) -> ([a] -> Parse e t) -> JsonFormat e a -> JsonFormat e t
+ Composite.Aeson.Formats.Generic: jsonObjectFormat :: (t -> [(Text, a)]) -> ([(Text, a)] -> Parse e t) -> JsonFormat e a -> JsonFormat e t
+ Composite.Aeson.Formats.Generic: jsonSumFormat :: SumStyle -> (a -> (Text, Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a
+ Composite.Aeson.Formats.InternalTH: makeTupleDefaults :: Q [Dec]
+ Composite.Aeson.Formats.InternalTH: makeTupleFormats :: Q [Dec]
+ Composite.Aeson.Formats.Provided: aesonArrayJsonFormat :: JsonFormat e Array
+ Composite.Aeson.Formats.Provided: aesonObjectJsonFormat :: JsonFormat e Object
+ Composite.Aeson.Formats.Provided: aesonValueJsonFormat :: JsonFormat e Value
+ Composite.Aeson.Formats.Provided: boolJsonFormat :: JsonFormat e Bool
+ Composite.Aeson.Formats.Provided: charJsonFormat :: JsonFormat e Char
+ Composite.Aeson.Formats.Provided: eitherJsonFormat :: SumStyle -> Text -> Text -> JsonFormat e a -> JsonFormat e b -> JsonFormat e (Either a b)
+ Composite.Aeson.Formats.Provided: fixedJsonFormat :: HasResolution r => JsonFormat e (Fixed r)
+ Composite.Aeson.Formats.Provided: intSetJsonFormat :: JsonFormat e IntSet
+ Composite.Aeson.Formats.Provided: integralJsonFormat :: Integral a => JsonFormat e a
+ Composite.Aeson.Formats.Provided: lazyHashMapJsonFormat :: (Eq k, Hashable k) => (k -> Text) -> (Text -> Parse e k) -> JsonFormat e a -> JsonFormat e (HashMap k a)
+ Composite.Aeson.Formats.Provided: lazyMapJsonFormat :: Ord k => (k -> Text) -> (Text -> Parse e k) -> JsonFormat e a -> JsonFormat e (Map k a)
+ Composite.Aeson.Formats.Provided: lazyTextJsonFormat :: JsonFormat e Text
+ Composite.Aeson.Formats.Provided: listJsonFormat :: JsonFormat e a -> JsonFormat e [a]
+ Composite.Aeson.Formats.Provided: maybeJsonFormat :: JsonFormat e a -> JsonFormat e (Maybe a)
+ Composite.Aeson.Formats.Provided: naturalJsonFormat :: JsonFormat e Natural
+ Composite.Aeson.Formats.Provided: nonEmptyListJsonFormat :: JsonFormat e a -> JsonFormat e (NonEmpty a)
+ Composite.Aeson.Formats.Provided: nullJsonFormat :: JsonFormat e ()
+ Composite.Aeson.Formats.Provided: orderingJsonFormat :: JsonFormat e Ordering
+ Composite.Aeson.Formats.Provided: realFloatJsonFormat :: RealFloat a => JsonFormat e a
+ Composite.Aeson.Formats.Provided: realFloatToJson :: RealFloat a => a -> Value
+ Composite.Aeson.Formats.Provided: scientificJsonFormat :: JsonFormat e Scientific
+ Composite.Aeson.Formats.Provided: seqJsonFormat :: JsonFormat e a -> JsonFormat e (Seq a)
+ Composite.Aeson.Formats.Provided: strictHashMapJsonFormat :: (Eq k, Hashable k) => (k -> Text) -> (Text -> Parse e k) -> JsonFormat e a -> JsonFormat e (HashMap k a)
+ Composite.Aeson.Formats.Provided: strictMapJsonFormat :: Ord k => (k -> Text) -> (Text -> Parse e k) -> JsonFormat e a -> JsonFormat e (Map k a)
+ Composite.Aeson.Formats.Provided: stringJsonFormat :: JsonFormat e String
+ Composite.Aeson.Formats.Provided: textJsonFormat :: JsonFormat e Text
+ Composite.Aeson.Formats.Provided: tuple10JsonFormat :: forall e_aviL t1_avi5 t2_avi6 t3_avi7 t4_avi8 t5_avi9 t6_avia t7_avib t8_avic t9_avid t10_avie. JsonFormat e_aviL t1_avi5 -> JsonFormat e_aviL t2_avi6 -> JsonFormat e_aviL t3_avi7 -> JsonFormat e_aviL t4_avi8 -> JsonFormat e_aviL t5_avi9 -> JsonFormat e_aviL t6_avia -> JsonFormat e_aviL t7_avib -> JsonFormat e_aviL t8_avic -> JsonFormat e_aviL t9_avid -> JsonFormat e_aviL t10_avie -> JsonFormat e_aviL (t1_avi5, t2_avi6, t3_avi7, t4_avi8, t5_avi9, t6_avia, t7_avib, t8_avic, t9_avid, t10_avie)
+ Composite.Aeson.Formats.Provided: tuple11JsonFormat :: forall e_avjx t1_aviN t2_aviO t3_aviP t4_aviQ t5_aviR t6_aviS t7_aviT t8_aviU t9_aviV t10_aviW t11_aviX. JsonFormat e_avjx t1_aviN -> JsonFormat e_avjx t2_aviO -> JsonFormat e_avjx t3_aviP -> JsonFormat e_avjx t4_aviQ -> JsonFormat e_avjx t5_aviR -> JsonFormat e_avjx t6_aviS -> JsonFormat e_avjx t7_aviT -> JsonFormat e_avjx t8_aviU -> JsonFormat e_avjx t9_aviV -> JsonFormat e_avjx t10_aviW -> JsonFormat e_avjx t11_aviX -> JsonFormat e_avjx (t1_aviN, t2_aviO, t3_aviP, t4_aviQ, t5_aviR, t6_aviS, t7_aviT, t8_aviU, t9_aviV, t10_aviW, t11_aviX)
+ Composite.Aeson.Formats.Provided: tuple12JsonFormat :: forall e_avkn t1_avjz t2_avjA t3_avjB t4_avjC t5_avjD t6_avjE t7_avjF t8_avjG t9_avjH t10_avjI t11_avjJ t12_avjK. JsonFormat e_avkn t1_avjz -> JsonFormat e_avkn t2_avjA -> JsonFormat e_avkn t3_avjB -> JsonFormat e_avkn t4_avjC -> JsonFormat e_avkn t5_avjD -> JsonFormat e_avkn t6_avjE -> JsonFormat e_avkn t7_avjF -> JsonFormat e_avkn t8_avjG -> JsonFormat e_avkn t9_avjH -> JsonFormat e_avkn t10_avjI -> JsonFormat e_avkn t11_avjJ -> JsonFormat e_avkn t12_avjK -> JsonFormat e_avkn (t1_avjz, t2_avjA, t3_avjB, t4_avjC, t5_avjD, t6_avjE, t7_avjF, t8_avjG, t9_avjH, t10_avjI, t11_avjJ, t12_avjK)
+ Composite.Aeson.Formats.Provided: tuple13JsonFormat :: forall e_avlh t1_avkp t2_avkq t3_avkr t4_avks t5_avkt t6_avku t7_avkv t8_avkw t9_avkx t10_avky t11_avkz t12_avkA t13_avkB. JsonFormat e_avlh t1_avkp -> JsonFormat e_avlh t2_avkq -> JsonFormat e_avlh t3_avkr -> JsonFormat e_avlh t4_avks -> JsonFormat e_avlh t5_avkt -> JsonFormat e_avlh t6_avku -> JsonFormat e_avlh t7_avkv -> JsonFormat e_avlh t8_avkw -> JsonFormat e_avlh t9_avkx -> JsonFormat e_avlh t10_avky -> JsonFormat e_avlh t11_avkz -> JsonFormat e_avlh t12_avkA -> JsonFormat e_avlh t13_avkB -> JsonFormat e_avlh (t1_avkp, t2_avkq, t3_avkr, t4_avks, t5_avkt, t6_avku, t7_avkv, t8_avkw, t9_avkx, t10_avky, t11_avkz, t12_avkA, t13_avkB)
+ Composite.Aeson.Formats.Provided: tuple14JsonFormat :: forall e_avmf t1_avlj t2_avlk t3_avll t4_avlm t5_avln t6_avlo t7_avlp t8_avlq t9_avlr t10_avls t11_avlt t12_avlu t13_avlv t14_avlw. JsonFormat e_avmf t1_avlj -> JsonFormat e_avmf t2_avlk -> JsonFormat e_avmf t3_avll -> JsonFormat e_avmf t4_avlm -> JsonFormat e_avmf t5_avln -> JsonFormat e_avmf t6_avlo -> JsonFormat e_avmf t7_avlp -> JsonFormat e_avmf t8_avlq -> JsonFormat e_avmf t9_avlr -> JsonFormat e_avmf t10_avls -> JsonFormat e_avmf t11_avlt -> JsonFormat e_avmf t12_avlu -> JsonFormat e_avmf t13_avlv -> JsonFormat e_avmf t14_avlw -> JsonFormat e_avmf (t1_avlj, t2_avlk, t3_avll, t4_avlm, t5_avln, t6_avlo, t7_avlp, t8_avlq, t9_avlr, t10_avls, t11_avlt, t12_avlu, t13_avlv, t14_avlw)
+ Composite.Aeson.Formats.Provided: tuple15JsonFormat :: forall e_avnh t1_avmh t2_avmi t3_avmj t4_avmk t5_avml t6_avmm t7_avmn t8_avmo t9_avmp t10_avmq t11_avmr t12_avms t13_avmt t14_avmu t15_avmv. JsonFormat e_avnh t1_avmh -> JsonFormat e_avnh t2_avmi -> JsonFormat e_avnh t3_avmj -> JsonFormat e_avnh t4_avmk -> JsonFormat e_avnh t5_avml -> JsonFormat e_avnh t6_avmm -> JsonFormat e_avnh t7_avmn -> JsonFormat e_avnh t8_avmo -> JsonFormat e_avnh t9_avmp -> JsonFormat e_avnh t10_avmq -> JsonFormat e_avnh t11_avmr -> JsonFormat e_avnh t12_avms -> JsonFormat e_avnh t13_avmt -> JsonFormat e_avnh t14_avmu -> JsonFormat e_avnh t15_avmv -> JsonFormat e_avnh (t1_avmh, t2_avmi, t3_avmj, t4_avmk, t5_avml, t6_avmm, t7_avmn, t8_avmo, t9_avmp, t10_avmq, t11_avmr, t12_avms, t13_avmt, t14_avmu, t15_avmv)
+ Composite.Aeson.Formats.Provided: tuple16JsonFormat :: forall e_avon t1_avnj t2_avnk t3_avnl t4_avnm t5_avnn t6_avno t7_avnp t8_avnq t9_avnr t10_avns t11_avnt t12_avnu t13_avnv t14_avnw t15_avnx t16_avny. JsonFormat e_avon t1_avnj -> JsonFormat e_avon t2_avnk -> JsonFormat e_avon t3_avnl -> JsonFormat e_avon t4_avnm -> JsonFormat e_avon t5_avnn -> JsonFormat e_avon t6_avno -> JsonFormat e_avon t7_avnp -> JsonFormat e_avon t8_avnq -> JsonFormat e_avon t9_avnr -> JsonFormat e_avon t10_avns -> JsonFormat e_avon t11_avnt -> JsonFormat e_avon t12_avnu -> JsonFormat e_avon t13_avnv -> JsonFormat e_avon t14_avnw -> JsonFormat e_avon t15_avnx -> JsonFormat e_avon t16_avny -> JsonFormat e_avon (t1_avnj, t2_avnk, t3_avnl, t4_avnm, t5_avnn, t6_avno, t7_avnp, t8_avnq, t9_avnr, t10_avns, t11_avnt, t12_avnu, t13_avnv, t14_avnw, t15_avnx, t16_avny)
+ Composite.Aeson.Formats.Provided: tuple17JsonFormat :: forall e_avpx t1_avop t2_avoq t3_avor t4_avos t5_avot t6_avou t7_avov t8_avow t9_avox t10_avoy t11_avoz t12_avoA t13_avoB t14_avoC t15_avoD t16_avoE t17_avoF. JsonFormat e_avpx t1_avop -> JsonFormat e_avpx t2_avoq -> JsonFormat e_avpx t3_avor -> JsonFormat e_avpx t4_avos -> JsonFormat e_avpx t5_avot -> JsonFormat e_avpx t6_avou -> JsonFormat e_avpx t7_avov -> JsonFormat e_avpx t8_avow -> JsonFormat e_avpx t9_avox -> JsonFormat e_avpx t10_avoy -> JsonFormat e_avpx t11_avoz -> JsonFormat e_avpx t12_avoA -> JsonFormat e_avpx t13_avoB -> JsonFormat e_avpx t14_avoC -> JsonFormat e_avpx t15_avoD -> JsonFormat e_avpx t16_avoE -> JsonFormat e_avpx t17_avoF -> JsonFormat e_avpx (t1_avop, t2_avoq, t3_avor, t4_avos, t5_avot, t6_avou, t7_avov, t8_avow, t9_avox, t10_avoy, t11_avoz, t12_avoA, t13_avoB, t14_avoC, t15_avoD, t16_avoE, t17_avoF)
+ Composite.Aeson.Formats.Provided: tuple18JsonFormat :: forall e_avqL t1_avpz t2_avpA t3_avpB t4_avpC t5_avpD t6_avpE t7_avpF t8_avpG t9_avpH t10_avpI t11_avpJ t12_avpK t13_avpL t14_avpM t15_avpN t16_avpO t17_avpP t18_avpQ. JsonFormat e_avqL t1_avpz -> JsonFormat e_avqL t2_avpA -> JsonFormat e_avqL t3_avpB -> JsonFormat e_avqL t4_avpC -> JsonFormat e_avqL t5_avpD -> JsonFormat e_avqL t6_avpE -> JsonFormat e_avqL t7_avpF -> JsonFormat e_avqL t8_avpG -> JsonFormat e_avqL t9_avpH -> JsonFormat e_avqL t10_avpI -> JsonFormat e_avqL t11_avpJ -> JsonFormat e_avqL t12_avpK -> JsonFormat e_avqL t13_avpL -> JsonFormat e_avqL t14_avpM -> JsonFormat e_avqL t15_avpN -> JsonFormat e_avqL t16_avpO -> JsonFormat e_avqL t17_avpP -> JsonFormat e_avqL t18_avpQ -> JsonFormat e_avqL (t1_avpz, t2_avpA, t3_avpB, t4_avpC, t5_avpD, t6_avpE, t7_avpF, t8_avpG, t9_avpH, t10_avpI, t11_avpJ, t12_avpK, t13_avpL, t14_avpM, t15_avpN, t16_avpO, t17_avpP, t18_avpQ)
+ Composite.Aeson.Formats.Provided: tuple19JsonFormat :: forall e_avs3 t1_avqN t2_avqO t3_avqP t4_avqQ t5_avqR t6_avqS t7_avqT t8_avqU t9_avqV t10_avqW t11_avqX t12_avqY t13_avqZ t14_avr0 t15_avr1 t16_avr2 t17_avr3 t18_avr4 t19_avr5. JsonFormat e_avs3 t1_avqN -> JsonFormat e_avs3 t2_avqO -> JsonFormat e_avs3 t3_avqP -> JsonFormat e_avs3 t4_avqQ -> JsonFormat e_avs3 t5_avqR -> JsonFormat e_avs3 t6_avqS -> JsonFormat e_avs3 t7_avqT -> JsonFormat e_avs3 t8_avqU -> JsonFormat e_avs3 t9_avqV -> JsonFormat e_avs3 t10_avqW -> JsonFormat e_avs3 t11_avqX -> JsonFormat e_avs3 t12_avqY -> JsonFormat e_avs3 t13_avqZ -> JsonFormat e_avs3 t14_avr0 -> JsonFormat e_avs3 t15_avr1 -> JsonFormat e_avs3 t16_avr2 -> JsonFormat e_avs3 t17_avr3 -> JsonFormat e_avs3 t18_avr4 -> JsonFormat e_avs3 t19_avr5 -> JsonFormat e_avs3 (t1_avqN, t2_avqO, t3_avqP, t4_avqQ, t5_avqR, t6_avqS, t7_avqT, t8_avqU, t9_avqV, t10_avqW, t11_avqX, t12_avqY, t13_avqZ, t14_avr0, t15_avr1, t16_avr2, t17_avr3, t18_avr4, t19_avr5)
+ Composite.Aeson.Formats.Provided: tuple20JsonFormat :: forall e_avtp t1_avs5 t2_avs6 t3_avs7 t4_avs8 t5_avs9 t6_avsa t7_avsb t8_avsc t9_avsd t10_avse t11_avsf t12_avsg t13_avsh t14_avsi t15_avsj t16_avsk t17_avsl t18_avsm t19_avsn t20_avso. JsonFormat e_avtp t1_avs5 -> JsonFormat e_avtp t2_avs6 -> JsonFormat e_avtp t3_avs7 -> JsonFormat e_avtp t4_avs8 -> JsonFormat e_avtp t5_avs9 -> JsonFormat e_avtp t6_avsa -> JsonFormat e_avtp t7_avsb -> JsonFormat e_avtp t8_avsc -> JsonFormat e_avtp t9_avsd -> JsonFormat e_avtp t10_avse -> JsonFormat e_avtp t11_avsf -> JsonFormat e_avtp t12_avsg -> JsonFormat e_avtp t13_avsh -> JsonFormat e_avtp t14_avsi -> JsonFormat e_avtp t15_avsj -> JsonFormat e_avtp t16_avsk -> JsonFormat e_avtp t17_avsl -> JsonFormat e_avtp t18_avsm -> JsonFormat e_avtp t19_avsn -> JsonFormat e_avtp t20_avso -> JsonFormat e_avtp (t1_avs5, t2_avs6, t3_avs7, t4_avs8, t5_avs9, t6_avsa, t7_avsb, t8_avsc, t9_avsd, t10_avse, t11_avsf, t12_avsg, t13_avsh, t14_avsi, t15_avsj, t16_avsk, t17_avsl, t18_avsm, t19_avsn, t20_avso)
+ Composite.Aeson.Formats.Provided: tuple21JsonFormat :: forall e_avuP t1_avtr t2_avts t3_avtt t4_avtu t5_avtv t6_avtw t7_avtx t8_avty t9_avtz t10_avtA t11_avtB t12_avtC t13_avtD t14_avtE t15_avtF t16_avtG t17_avtH t18_avtI t19_avtJ t20_avtK t21_avtL. JsonFormat e_avuP t1_avtr -> JsonFormat e_avuP t2_avts -> JsonFormat e_avuP t3_avtt -> JsonFormat e_avuP t4_avtu -> JsonFormat e_avuP t5_avtv -> JsonFormat e_avuP t6_avtw -> JsonFormat e_avuP t7_avtx -> JsonFormat e_avuP t8_avty -> JsonFormat e_avuP t9_avtz -> JsonFormat e_avuP t10_avtA -> JsonFormat e_avuP t11_avtB -> JsonFormat e_avuP t12_avtC -> JsonFormat e_avuP t13_avtD -> JsonFormat e_avuP t14_avtE -> JsonFormat e_avuP t15_avtF -> JsonFormat e_avuP t16_avtG -> JsonFormat e_avuP t17_avtH -> JsonFormat e_avuP t18_avtI -> JsonFormat e_avuP t19_avtJ -> JsonFormat e_avuP t20_avtK -> JsonFormat e_avuP t21_avtL -> JsonFormat e_avuP (t1_avtr, t2_avts, t3_avtt, t4_avtu, t5_avtv, t6_avtw, t7_avtx, t8_avty, t9_avtz, t10_avtA, t11_avtB, t12_avtC, t13_avtD, t14_avtE, t15_avtF, t16_avtG, t17_avtH, t18_avtI, t19_avtJ, t20_avtK, t21_avtL)
+ Composite.Aeson.Formats.Provided: tuple22JsonFormat :: forall e_avwj t1_avuR t2_avuS t3_avuT t4_avuU t5_avuV t6_avuW t7_avuX t8_avuY t9_avuZ t10_avv0 t11_avv1 t12_avv2 t13_avv3 t14_avv4 t15_avv5 t16_avv6 t17_avv7 t18_avv8 t19_avv9 t20_avva t21_avvb t22_avvc. JsonFormat e_avwj t1_avuR -> JsonFormat e_avwj t2_avuS -> JsonFormat e_avwj t3_avuT -> JsonFormat e_avwj t4_avuU -> JsonFormat e_avwj t5_avuV -> JsonFormat e_avwj t6_avuW -> JsonFormat e_avwj t7_avuX -> JsonFormat e_avwj t8_avuY -> JsonFormat e_avwj t9_avuZ -> JsonFormat e_avwj t10_avv0 -> JsonFormat e_avwj t11_avv1 -> JsonFormat e_avwj t12_avv2 -> JsonFormat e_avwj t13_avv3 -> JsonFormat e_avwj t14_avv4 -> JsonFormat e_avwj t15_avv5 -> JsonFormat e_avwj t16_avv6 -> JsonFormat e_avwj t17_avv7 -> JsonFormat e_avwj t18_avv8 -> JsonFormat e_avwj t19_avv9 -> JsonFormat e_avwj t20_avva -> JsonFormat e_avwj t21_avvb -> JsonFormat e_avwj t22_avvc -> JsonFormat e_avwj (t1_avuR, t2_avuS, t3_avuT, t4_avuU, t5_avuV, t6_avuW, t7_avuX, t8_avuY, t9_avuZ, t10_avv0, t11_avv1, t12_avv2, t13_avv3, t14_avv4, t15_avv5, t16_avv6, t17_avv7, t18_avv8, t19_avv9, t20_avva, t21_avvb, t22_avvc)
+ Composite.Aeson.Formats.Provided: tuple23JsonFormat :: forall e_avxR t1_avwl t2_avwm t3_avwn t4_avwo t5_avwp t6_avwq t7_avwr t8_avws t9_avwt t10_avwu t11_avwv t12_avww t13_avwx t14_avwy t15_avwz t16_avwA t17_avwB t18_avwC t19_avwD t20_avwE t21_avwF t22_avwG t23_avwH. JsonFormat e_avxR t1_avwl -> JsonFormat e_avxR t2_avwm -> JsonFormat e_avxR t3_avwn -> JsonFormat e_avxR t4_avwo -> JsonFormat e_avxR t5_avwp -> JsonFormat e_avxR t6_avwq -> JsonFormat e_avxR t7_avwr -> JsonFormat e_avxR t8_avws -> JsonFormat e_avxR t9_avwt -> JsonFormat e_avxR t10_avwu -> JsonFormat e_avxR t11_avwv -> JsonFormat e_avxR t12_avww -> JsonFormat e_avxR t13_avwx -> JsonFormat e_avxR t14_avwy -> JsonFormat e_avxR t15_avwz -> JsonFormat e_avxR t16_avwA -> JsonFormat e_avxR t17_avwB -> JsonFormat e_avxR t18_avwC -> JsonFormat e_avxR t19_avwD -> JsonFormat e_avxR t20_avwE -> JsonFormat e_avxR t21_avwF -> JsonFormat e_avxR t22_avwG -> JsonFormat e_avxR t23_avwH -> JsonFormat e_avxR (t1_avwl, t2_avwm, t3_avwn, t4_avwo, t5_avwp, t6_avwq, t7_avwr, t8_avws, t9_avwt, t10_avwu, t11_avwv, t12_avww, t13_avwx, t14_avwy, t15_avwz, t16_avwA, t17_avwB, t18_avwC, t19_avwD, t20_avwE, t21_avwF, t22_avwG, t23_avwH)
+ Composite.Aeson.Formats.Provided: tuple24JsonFormat :: forall e_avzt t1_avxT t2_avxU t3_avxV t4_avxW t5_avxX t6_avxY t7_avxZ t8_avy0 t9_avy1 t10_avy2 t11_avy3 t12_avy4 t13_avy5 t14_avy6 t15_avy7 t16_avy8 t17_avy9 t18_avya t19_avyb t20_avyc t21_avyd t22_avye t23_avyf t24_avyg. JsonFormat e_avzt t1_avxT -> JsonFormat e_avzt t2_avxU -> JsonFormat e_avzt t3_avxV -> JsonFormat e_avzt t4_avxW -> JsonFormat e_avzt t5_avxX -> JsonFormat e_avzt t6_avxY -> JsonFormat e_avzt t7_avxZ -> JsonFormat e_avzt t8_avy0 -> JsonFormat e_avzt t9_avy1 -> JsonFormat e_avzt t10_avy2 -> JsonFormat e_avzt t11_avy3 -> JsonFormat e_avzt t12_avy4 -> JsonFormat e_avzt t13_avy5 -> JsonFormat e_avzt t14_avy6 -> JsonFormat e_avzt t15_avy7 -> JsonFormat e_avzt t16_avy8 -> JsonFormat e_avzt t17_avy9 -> JsonFormat e_avzt t18_avya -> JsonFormat e_avzt t19_avyb -> JsonFormat e_avzt t20_avyc -> JsonFormat e_avzt t21_avyd -> JsonFormat e_avzt t22_avye -> JsonFormat e_avzt t23_avyf -> JsonFormat e_avzt t24_avyg -> JsonFormat e_avzt (t1_avxT, t2_avxU, t3_avxV, t4_avxW, t5_avxX, t6_avxY, t7_avxZ, t8_avy0, t9_avy1, t10_avy2, t11_avy3, t12_avy4, t13_avy5, t14_avy6, t15_avy7, t16_avy8, t17_avy9, t18_avya, t19_avyb, t20_avyc, t21_avyd, t22_avye, t23_avyf, t24_avyg)
+ Composite.Aeson.Formats.Provided: tuple25JsonFormat :: forall e_avB9 t1_avzv t2_avzw t3_avzx t4_avzy t5_avzz t6_avzA t7_avzB t8_avzC t9_avzD t10_avzE t11_avzF t12_avzG t13_avzH t14_avzI t15_avzJ t16_avzK t17_avzL t18_avzM t19_avzN t20_avzO t21_avzP t22_avzQ t23_avzR t24_avzS t25_avzT. JsonFormat e_avB9 t1_avzv -> JsonFormat e_avB9 t2_avzw -> JsonFormat e_avB9 t3_avzx -> JsonFormat e_avB9 t4_avzy -> JsonFormat e_avB9 t5_avzz -> JsonFormat e_avB9 t6_avzA -> JsonFormat e_avB9 t7_avzB -> JsonFormat e_avB9 t8_avzC -> JsonFormat e_avB9 t9_avzD -> JsonFormat e_avB9 t10_avzE -> JsonFormat e_avB9 t11_avzF -> JsonFormat e_avB9 t12_avzG -> JsonFormat e_avB9 t13_avzH -> JsonFormat e_avB9 t14_avzI -> JsonFormat e_avB9 t15_avzJ -> JsonFormat e_avB9 t16_avzK -> JsonFormat e_avB9 t17_avzL -> JsonFormat e_avB9 t18_avzM -> JsonFormat e_avB9 t19_avzN -> JsonFormat e_avB9 t20_avzO -> JsonFormat e_avB9 t21_avzP -> JsonFormat e_avB9 t22_avzQ -> JsonFormat e_avB9 t23_avzR -> JsonFormat e_avB9 t24_avzS -> JsonFormat e_avB9 t25_avzT -> JsonFormat e_avB9 (t1_avzv, t2_avzw, t3_avzx, t4_avzy, t5_avzz, t6_avzA, t7_avzB, t8_avzC, t9_avzD, t10_avzE, t11_avzF, t12_avzG, t13_avzH, t14_avzI, t15_avzJ, t16_avzK, t17_avzL, t18_avzM, t19_avzN, t20_avzO, t21_avzP, t22_avzQ, t23_avzR, t24_avzS, t25_avzT)
+ Composite.Aeson.Formats.Provided: tuple26JsonFormat :: forall e_avCT t1_avBb t2_avBc t3_avBd t4_avBe t5_avBf t6_avBg t7_avBh t8_avBi t9_avBj t10_avBk t11_avBl t12_avBm t13_avBn t14_avBo t15_avBp t16_avBq t17_avBr t18_avBs t19_avBt t20_avBu t21_avBv t22_avBw t23_avBx t24_avBy t25_avBz t26_avBA. JsonFormat e_avCT t1_avBb -> JsonFormat e_avCT t2_avBc -> JsonFormat e_avCT t3_avBd -> JsonFormat e_avCT t4_avBe -> JsonFormat e_avCT t5_avBf -> JsonFormat e_avCT t6_avBg -> JsonFormat e_avCT t7_avBh -> JsonFormat e_avCT t8_avBi -> JsonFormat e_avCT t9_avBj -> JsonFormat e_avCT t10_avBk -> JsonFormat e_avCT t11_avBl -> JsonFormat e_avCT t12_avBm -> JsonFormat e_avCT t13_avBn -> JsonFormat e_avCT t14_avBo -> JsonFormat e_avCT t15_avBp -> JsonFormat e_avCT t16_avBq -> JsonFormat e_avCT t17_avBr -> JsonFormat e_avCT t18_avBs -> JsonFormat e_avCT t19_avBt -> JsonFormat e_avCT t20_avBu -> JsonFormat e_avCT t21_avBv -> JsonFormat e_avCT t22_avBw -> JsonFormat e_avCT t23_avBx -> JsonFormat e_avCT t24_avBy -> JsonFormat e_avCT t25_avBz -> JsonFormat e_avCT t26_avBA -> JsonFormat e_avCT (t1_avBb, t2_avBc, t3_avBd, t4_avBe, t5_avBf, t6_avBg, t7_avBh, t8_avBi, t9_avBj, t10_avBk, t11_avBl, t12_avBm, t13_avBn, t14_avBo, t15_avBp, t16_avBq, t17_avBr, t18_avBs, t19_avBt, t20_avBu, t21_avBv, t22_avBw, t23_avBx, t24_avBy, t25_avBz, t26_avBA)
+ Composite.Aeson.Formats.Provided: tuple27JsonFormat :: forall e_avEH t1_avCV t2_avCW t3_avCX t4_avCY t5_avCZ t6_avD0 t7_avD1 t8_avD2 t9_avD3 t10_avD4 t11_avD5 t12_avD6 t13_avD7 t14_avD8 t15_avD9 t16_avDa t17_avDb t18_avDc t19_avDd t20_avDe t21_avDf t22_avDg t23_avDh t24_avDi t25_avDj t26_avDk t27_avDl. JsonFormat e_avEH t1_avCV -> JsonFormat e_avEH t2_avCW -> JsonFormat e_avEH t3_avCX -> JsonFormat e_avEH t4_avCY -> JsonFormat e_avEH t5_avCZ -> JsonFormat e_avEH t6_avD0 -> JsonFormat e_avEH t7_avD1 -> JsonFormat e_avEH t8_avD2 -> JsonFormat e_avEH t9_avD3 -> JsonFormat e_avEH t10_avD4 -> JsonFormat e_avEH t11_avD5 -> JsonFormat e_avEH t12_avD6 -> JsonFormat e_avEH t13_avD7 -> JsonFormat e_avEH t14_avD8 -> JsonFormat e_avEH t15_avD9 -> JsonFormat e_avEH t16_avDa -> JsonFormat e_avEH t17_avDb -> JsonFormat e_avEH t18_avDc -> JsonFormat e_avEH t19_avDd -> JsonFormat e_avEH t20_avDe -> JsonFormat e_avEH t21_avDf -> JsonFormat e_avEH t22_avDg -> JsonFormat e_avEH t23_avDh -> JsonFormat e_avEH t24_avDi -> JsonFormat e_avEH t25_avDj -> JsonFormat e_avEH t26_avDk -> JsonFormat e_avEH t27_avDl -> JsonFormat e_avEH (t1_avCV, t2_avCW, t3_avCX, t4_avCY, t5_avCZ, t6_avD0, t7_avD1, t8_avD2, t9_avD3, t10_avD4, t11_avD5, t12_avD6, t13_avD7, t14_avD8, t15_avD9, t16_avDa, t17_avDb, t18_avDc, t19_avDd, t20_avDe, t21_avDf, t22_avDg, t23_avDh, t24_avDi, t25_avDj, t26_avDk, t27_avDl)
+ Composite.Aeson.Formats.Provided: tuple28JsonFormat :: forall e_avGz t1_avEJ t2_avEK t3_avEL t4_avEM t5_avEN t6_avEO t7_avEP t8_avEQ t9_avER t10_avES t11_avET t12_avEU t13_avEV t14_avEW t15_avEX t16_avEY t17_avEZ t18_avF0 t19_avF1 t20_avF2 t21_avF3 t22_avF4 t23_avF5 t24_avF6 t25_avF7 t26_avF8 t27_avF9 t28_avFa. JsonFormat e_avGz t1_avEJ -> JsonFormat e_avGz t2_avEK -> JsonFormat e_avGz t3_avEL -> JsonFormat e_avGz t4_avEM -> JsonFormat e_avGz t5_avEN -> JsonFormat e_avGz t6_avEO -> JsonFormat e_avGz t7_avEP -> JsonFormat e_avGz t8_avEQ -> JsonFormat e_avGz t9_avER -> JsonFormat e_avGz t10_avES -> JsonFormat e_avGz t11_avET -> JsonFormat e_avGz t12_avEU -> JsonFormat e_avGz t13_avEV -> JsonFormat e_avGz t14_avEW -> JsonFormat e_avGz t15_avEX -> JsonFormat e_avGz t16_avEY -> JsonFormat e_avGz t17_avEZ -> JsonFormat e_avGz t18_avF0 -> JsonFormat e_avGz t19_avF1 -> JsonFormat e_avGz t20_avF2 -> JsonFormat e_avGz t21_avF3 -> JsonFormat e_avGz t22_avF4 -> JsonFormat e_avGz t23_avF5 -> JsonFormat e_avGz t24_avF6 -> JsonFormat e_avGz t25_avF7 -> JsonFormat e_avGz t26_avF8 -> JsonFormat e_avGz t27_avF9 -> JsonFormat e_avGz t28_avFa -> JsonFormat e_avGz (t1_avEJ, t2_avEK, t3_avEL, t4_avEM, t5_avEN, t6_avEO, t7_avEP, t8_avEQ, t9_avER, t10_avES, t11_avET, t12_avEU, t13_avEV, t14_avEW, t15_avEX, t16_avEY, t17_avEZ, t18_avF0, t19_avF1, t20_avF2, t21_avF3, t22_avF4, t23_avF5, t24_avF6, t25_avF7, t26_avF8, t27_avF9, t28_avFa)
+ Composite.Aeson.Formats.Provided: tuple29JsonFormat :: forall e_avIv t1_avGB t2_avGC t3_avGD t4_avGE t5_avGF t6_avGG t7_avGH t8_avGI t9_avGJ t10_avGK t11_avGL t12_avGM t13_avGN t14_avGO t15_avGP t16_avGQ t17_avGR t18_avGS t19_avGT t20_avGU t21_avGV t22_avGW t23_avGX t24_avGY t25_avGZ t26_avH0 t27_avH1 t28_avH2 t29_avH3. JsonFormat e_avIv t1_avGB -> JsonFormat e_avIv t2_avGC -> JsonFormat e_avIv t3_avGD -> JsonFormat e_avIv t4_avGE -> JsonFormat e_avIv t5_avGF -> JsonFormat e_avIv t6_avGG -> JsonFormat e_avIv t7_avGH -> JsonFormat e_avIv t8_avGI -> JsonFormat e_avIv t9_avGJ -> JsonFormat e_avIv t10_avGK -> JsonFormat e_avIv t11_avGL -> JsonFormat e_avIv t12_avGM -> JsonFormat e_avIv t13_avGN -> JsonFormat e_avIv t14_avGO -> JsonFormat e_avIv t15_avGP -> JsonFormat e_avIv t16_avGQ -> JsonFormat e_avIv t17_avGR -> JsonFormat e_avIv t18_avGS -> JsonFormat e_avIv t19_avGT -> JsonFormat e_avIv t20_avGU -> JsonFormat e_avIv t21_avGV -> JsonFormat e_avIv t22_avGW -> JsonFormat e_avIv t23_avGX -> JsonFormat e_avIv t24_avGY -> JsonFormat e_avIv t25_avGZ -> JsonFormat e_avIv t26_avH0 -> JsonFormat e_avIv t27_avH1 -> JsonFormat e_avIv t28_avH2 -> JsonFormat e_avIv t29_avH3 -> JsonFormat e_avIv (t1_avGB, t2_avGC, t3_avGD, t4_avGE, t5_avGF, t6_avGG, t7_avGH, t8_avGI, t9_avGJ, t10_avGK, t11_avGL, t12_avGM, t13_avGN, t14_avGO, t15_avGP, t16_avGQ, t17_avGR, t18_avGS, t19_avGT, t20_avGU, t21_avGV, t22_avGW, t23_avGX, t24_avGY, t25_avGZ, t26_avH0, t27_avH1, t28_avH2, t29_avH3)
+ Composite.Aeson.Formats.Provided: tuple2JsonFormat :: forall e_aveT t1_aveJ t2_aveK. JsonFormat e_aveT t1_aveJ -> JsonFormat e_aveT t2_aveK -> JsonFormat e_aveT (t1_aveJ, t2_aveK)
+ Composite.Aeson.Formats.Provided: tuple30JsonFormat :: forall e_avKv t1_avIx t2_avIy t3_avIz t4_avIA t5_avIB t6_avIC t7_avID t8_avIE t9_avIF t10_avIG t11_avIH t12_avII t13_avIJ t14_avIK t15_avIL t16_avIM t17_avIN t18_avIO t19_avIP t20_avIQ t21_avIR t22_avIS t23_avIT t24_avIU t25_avIV t26_avIW t27_avIX t28_avIY t29_avIZ t30_avJ0. JsonFormat e_avKv t1_avIx -> JsonFormat e_avKv t2_avIy -> JsonFormat e_avKv t3_avIz -> JsonFormat e_avKv t4_avIA -> JsonFormat e_avKv t5_avIB -> JsonFormat e_avKv t6_avIC -> JsonFormat e_avKv t7_avID -> JsonFormat e_avKv t8_avIE -> JsonFormat e_avKv t9_avIF -> JsonFormat e_avKv t10_avIG -> JsonFormat e_avKv t11_avIH -> JsonFormat e_avKv t12_avII -> JsonFormat e_avKv t13_avIJ -> JsonFormat e_avKv t14_avIK -> JsonFormat e_avKv t15_avIL -> JsonFormat e_avKv t16_avIM -> JsonFormat e_avKv t17_avIN -> JsonFormat e_avKv t18_avIO -> JsonFormat e_avKv t19_avIP -> JsonFormat e_avKv t20_avIQ -> JsonFormat e_avKv t21_avIR -> JsonFormat e_avKv t22_avIS -> JsonFormat e_avKv t23_avIT -> JsonFormat e_avKv t24_avIU -> JsonFormat e_avKv t25_avIV -> JsonFormat e_avKv t26_avIW -> JsonFormat e_avKv t27_avIX -> JsonFormat e_avKv t28_avIY -> JsonFormat e_avKv t29_avIZ -> JsonFormat e_avKv t30_avJ0 -> JsonFormat e_avKv (t1_avIx, t2_avIy, t3_avIz, t4_avIA, t5_avIB, t6_avIC, t7_avID, t8_avIE, t9_avIF, t10_avIG, t11_avIH, t12_avII, t13_avIJ, t14_avIK, t15_avIL, t16_avIM, t17_avIN, t18_avIO, t19_avIP, t20_avIQ, t21_avIR, t22_avIS, t23_avIT, t24_avIU, t25_avIV, t26_avIW, t27_avIX, t28_avIY, t29_avIZ, t30_avJ0)
+ Composite.Aeson.Formats.Provided: tuple31JsonFormat :: forall e_avMz t1_avKx t2_avKy t3_avKz t4_avKA t5_avKB t6_avKC t7_avKD t8_avKE t9_avKF t10_avKG t11_avKH t12_avKI t13_avKJ t14_avKK t15_avKL t16_avKM t17_avKN t18_avKO t19_avKP t20_avKQ t21_avKR t22_avKS t23_avKT t24_avKU t25_avKV t26_avKW t27_avKX t28_avKY t29_avKZ t30_avL0 t31_avL1. JsonFormat e_avMz t1_avKx -> JsonFormat e_avMz t2_avKy -> JsonFormat e_avMz t3_avKz -> JsonFormat e_avMz t4_avKA -> JsonFormat e_avMz t5_avKB -> JsonFormat e_avMz t6_avKC -> JsonFormat e_avMz t7_avKD -> JsonFormat e_avMz t8_avKE -> JsonFormat e_avMz t9_avKF -> JsonFormat e_avMz t10_avKG -> JsonFormat e_avMz t11_avKH -> JsonFormat e_avMz t12_avKI -> JsonFormat e_avMz t13_avKJ -> JsonFormat e_avMz t14_avKK -> JsonFormat e_avMz t15_avKL -> JsonFormat e_avMz t16_avKM -> JsonFormat e_avMz t17_avKN -> JsonFormat e_avMz t18_avKO -> JsonFormat e_avMz t19_avKP -> JsonFormat e_avMz t20_avKQ -> JsonFormat e_avMz t21_avKR -> JsonFormat e_avMz t22_avKS -> JsonFormat e_avMz t23_avKT -> JsonFormat e_avMz t24_avKU -> JsonFormat e_avMz t25_avKV -> JsonFormat e_avMz t26_avKW -> JsonFormat e_avMz t27_avKX -> JsonFormat e_avMz t28_avKY -> JsonFormat e_avMz t29_avKZ -> JsonFormat e_avMz t30_avL0 -> JsonFormat e_avMz t31_avL1 -> JsonFormat e_avMz (t1_avKx, t2_avKy, t3_avKz, t4_avKA, t5_avKB, t6_avKC, t7_avKD, t8_avKE, t9_avKF, t10_avKG, t11_avKH, t12_avKI, t13_avKJ, t14_avKK, t15_avKL, t16_avKM, t17_avKN, t18_avKO, t19_avKP, t20_avKQ, t21_avKR, t22_avKS, t23_avKT, t24_avKU, t25_avKV, t26_avKW, t27_avKX, t28_avKY, t29_avKZ, t30_avL0, t31_avL1)
+ Composite.Aeson.Formats.Provided: tuple32JsonFormat :: forall e_avOH t1_avMB t2_avMC t3_avMD t4_avME t5_avMF t6_avMG t7_avMH t8_avMI t9_avMJ t10_avMK t11_avML t12_avMM t13_avMN t14_avMO t15_avMP t16_avMQ t17_avMR t18_avMS t19_avMT t20_avMU t21_avMV t22_avMW t23_avMX t24_avMY t25_avMZ t26_avN0 t27_avN1 t28_avN2 t29_avN3 t30_avN4 t31_avN5 t32_avN6. JsonFormat e_avOH t1_avMB -> JsonFormat e_avOH t2_avMC -> JsonFormat e_avOH t3_avMD -> JsonFormat e_avOH t4_avME -> JsonFormat e_avOH t5_avMF -> JsonFormat e_avOH t6_avMG -> JsonFormat e_avOH t7_avMH -> JsonFormat e_avOH t8_avMI -> JsonFormat e_avOH t9_avMJ -> JsonFormat e_avOH t10_avMK -> JsonFormat e_avOH t11_avML -> JsonFormat e_avOH t12_avMM -> JsonFormat e_avOH t13_avMN -> JsonFormat e_avOH t14_avMO -> JsonFormat e_avOH t15_avMP -> JsonFormat e_avOH t16_avMQ -> JsonFormat e_avOH t17_avMR -> JsonFormat e_avOH t18_avMS -> JsonFormat e_avOH t19_avMT -> JsonFormat e_avOH t20_avMU -> JsonFormat e_avOH t21_avMV -> JsonFormat e_avOH t22_avMW -> JsonFormat e_avOH t23_avMX -> JsonFormat e_avOH t24_avMY -> JsonFormat e_avOH t25_avMZ -> JsonFormat e_avOH t26_avN0 -> JsonFormat e_avOH t27_avN1 -> JsonFormat e_avOH t28_avN2 -> JsonFormat e_avOH t29_avN3 -> JsonFormat e_avOH t30_avN4 -> JsonFormat e_avOH t31_avN5 -> JsonFormat e_avOH t32_avN6 -> JsonFormat e_avOH (t1_avMB, t2_avMC, t3_avMD, t4_avME, t5_avMF, t6_avMG, t7_avMH, t8_avMI, t9_avMJ, t10_avMK, t11_avML, t12_avMM, t13_avMN, t14_avMO, t15_avMP, t16_avMQ, t17_avMR, t18_avMS, t19_avMT, t20_avMU, t21_avMV, t22_avMW, t23_avMX, t24_avMY, t25_avMZ, t26_avN0, t27_avN1, t28_avN2, t29_avN3, t30_avN4, t31_avN5, t32_avN6)
+ Composite.Aeson.Formats.Provided: tuple33JsonFormat :: forall e_avQT t1_avOJ t2_avOK t3_avOL t4_avOM t5_avON t6_avOO t7_avOP t8_avOQ t9_avOR t10_avOS t11_avOT t12_avOU t13_avOV t14_avOW t15_avOX t16_avOY t17_avOZ t18_avP0 t19_avP1 t20_avP2 t21_avP3 t22_avP4 t23_avP5 t24_avP6 t25_avP7 t26_avP8 t27_avP9 t28_avPa t29_avPb t30_avPc t31_avPd t32_avPe t33_avPf. JsonFormat e_avQT t1_avOJ -> JsonFormat e_avQT t2_avOK -> JsonFormat e_avQT t3_avOL -> JsonFormat e_avQT t4_avOM -> JsonFormat e_avQT t5_avON -> JsonFormat e_avQT t6_avOO -> JsonFormat e_avQT t7_avOP -> JsonFormat e_avQT t8_avOQ -> JsonFormat e_avQT t9_avOR -> JsonFormat e_avQT t10_avOS -> JsonFormat e_avQT t11_avOT -> JsonFormat e_avQT t12_avOU -> JsonFormat e_avQT t13_avOV -> JsonFormat e_avQT t14_avOW -> JsonFormat e_avQT t15_avOX -> JsonFormat e_avQT t16_avOY -> JsonFormat e_avQT t17_avOZ -> JsonFormat e_avQT t18_avP0 -> JsonFormat e_avQT t19_avP1 -> JsonFormat e_avQT t20_avP2 -> JsonFormat e_avQT t21_avP3 -> JsonFormat e_avQT t22_avP4 -> JsonFormat e_avQT t23_avP5 -> JsonFormat e_avQT t24_avP6 -> JsonFormat e_avQT t25_avP7 -> JsonFormat e_avQT t26_avP8 -> JsonFormat e_avQT t27_avP9 -> JsonFormat e_avQT t28_avPa -> JsonFormat e_avQT t29_avPb -> JsonFormat e_avQT t30_avPc -> JsonFormat e_avQT t31_avPd -> JsonFormat e_avQT t32_avPe -> JsonFormat e_avQT t33_avPf -> JsonFormat e_avQT (t1_avOJ, t2_avOK, t3_avOL, t4_avOM, t5_avON, t6_avOO, t7_avOP, t8_avOQ, t9_avOR, t10_avOS, t11_avOT, t12_avOU, t13_avOV, t14_avOW, t15_avOX, t16_avOY, t17_avOZ, t18_avP0, t19_avP1, t20_avP2, t21_avP3, t22_avP4, t23_avP5, t24_avP6, t25_avP7, t26_avP8, t27_avP9, t28_avPa, t29_avPb, t30_avPc, t31_avPd, t32_avPe, t33_avPf)
+ Composite.Aeson.Formats.Provided: tuple34JsonFormat :: forall e_avT9 t1_avQV t2_avQW t3_avQX t4_avQY t5_avQZ t6_avR0 t7_avR1 t8_avR2 t9_avR3 t10_avR4 t11_avR5 t12_avR6 t13_avR7 t14_avR8 t15_avR9 t16_avRa t17_avRb t18_avRc t19_avRd t20_avRe t21_avRf t22_avRg t23_avRh t24_avRi t25_avRj t26_avRk t27_avRl t28_avRm t29_avRn t30_avRo t31_avRp t32_avRq t33_avRr t34_avRs. JsonFormat e_avT9 t1_avQV -> JsonFormat e_avT9 t2_avQW -> JsonFormat e_avT9 t3_avQX -> JsonFormat e_avT9 t4_avQY -> JsonFormat e_avT9 t5_avQZ -> JsonFormat e_avT9 t6_avR0 -> JsonFormat e_avT9 t7_avR1 -> JsonFormat e_avT9 t8_avR2 -> JsonFormat e_avT9 t9_avR3 -> JsonFormat e_avT9 t10_avR4 -> JsonFormat e_avT9 t11_avR5 -> JsonFormat e_avT9 t12_avR6 -> JsonFormat e_avT9 t13_avR7 -> JsonFormat e_avT9 t14_avR8 -> JsonFormat e_avT9 t15_avR9 -> JsonFormat e_avT9 t16_avRa -> JsonFormat e_avT9 t17_avRb -> JsonFormat e_avT9 t18_avRc -> JsonFormat e_avT9 t19_avRd -> JsonFormat e_avT9 t20_avRe -> JsonFormat e_avT9 t21_avRf -> JsonFormat e_avT9 t22_avRg -> JsonFormat e_avT9 t23_avRh -> JsonFormat e_avT9 t24_avRi -> JsonFormat e_avT9 t25_avRj -> JsonFormat e_avT9 t26_avRk -> JsonFormat e_avT9 t27_avRl -> JsonFormat e_avT9 t28_avRm -> JsonFormat e_avT9 t29_avRn -> JsonFormat e_avT9 t30_avRo -> JsonFormat e_avT9 t31_avRp -> JsonFormat e_avT9 t32_avRq -> JsonFormat e_avT9 t33_avRr -> JsonFormat e_avT9 t34_avRs -> JsonFormat e_avT9 (t1_avQV, t2_avQW, t3_avQX, t4_avQY, t5_avQZ, t6_avR0, t7_avR1, t8_avR2, t9_avR3, t10_avR4, t11_avR5, t12_avR6, t13_avR7, t14_avR8, t15_avR9, t16_avRa, t17_avRb, t18_avRc, t19_avRd, t20_avRe, t21_avRf, t22_avRg, t23_avRh, t24_avRi, t25_avRj, t26_avRk, t27_avRl, t28_avRm, t29_avRn, t30_avRo, t31_avRp, t32_avRq, t33_avRr, t34_avRs)
+ Composite.Aeson.Formats.Provided: tuple35JsonFormat :: forall e_avVt t1_avTb t2_avTc t3_avTd t4_avTe t5_avTf t6_avTg t7_avTh t8_avTi t9_avTj t10_avTk t11_avTl t12_avTm t13_avTn t14_avTo t15_avTp t16_avTq t17_avTr t18_avTs t19_avTt t20_avTu t21_avTv t22_avTw t23_avTx t24_avTy t25_avTz t26_avTA t27_avTB t28_avTC t29_avTD t30_avTE t31_avTF t32_avTG t33_avTH t34_avTI t35_avTJ. JsonFormat e_avVt t1_avTb -> JsonFormat e_avVt t2_avTc -> JsonFormat e_avVt t3_avTd -> JsonFormat e_avVt t4_avTe -> JsonFormat e_avVt t5_avTf -> JsonFormat e_avVt t6_avTg -> JsonFormat e_avVt t7_avTh -> JsonFormat e_avVt t8_avTi -> JsonFormat e_avVt t9_avTj -> JsonFormat e_avVt t10_avTk -> JsonFormat e_avVt t11_avTl -> JsonFormat e_avVt t12_avTm -> JsonFormat e_avVt t13_avTn -> JsonFormat e_avVt t14_avTo -> JsonFormat e_avVt t15_avTp -> JsonFormat e_avVt t16_avTq -> JsonFormat e_avVt t17_avTr -> JsonFormat e_avVt t18_avTs -> JsonFormat e_avVt t19_avTt -> JsonFormat e_avVt t20_avTu -> JsonFormat e_avVt t21_avTv -> JsonFormat e_avVt t22_avTw -> JsonFormat e_avVt t23_avTx -> JsonFormat e_avVt t24_avTy -> JsonFormat e_avVt t25_avTz -> JsonFormat e_avVt t26_avTA -> JsonFormat e_avVt t27_avTB -> JsonFormat e_avVt t28_avTC -> JsonFormat e_avVt t29_avTD -> JsonFormat e_avVt t30_avTE -> JsonFormat e_avVt t31_avTF -> JsonFormat e_avVt t32_avTG -> JsonFormat e_avVt t33_avTH -> JsonFormat e_avVt t34_avTI -> JsonFormat e_avVt t35_avTJ -> JsonFormat e_avVt (t1_avTb, t2_avTc, t3_avTd, t4_avTe, t5_avTf, t6_avTg, t7_avTh, t8_avTi, t9_avTj, t10_avTk, t11_avTl, t12_avTm, t13_avTn, t14_avTo, t15_avTp, t16_avTq, t17_avTr, t18_avTs, t19_avTt, t20_avTu, t21_avTv, t22_avTw, t23_avTx, t24_avTy, t25_avTz, t26_avTA, t27_avTB, t28_avTC, t29_avTD, t30_avTE, t31_avTF, t32_avTG, t33_avTH, t34_avTI, t35_avTJ)
+ Composite.Aeson.Formats.Provided: tuple36JsonFormat :: forall e_avXR t1_avVv t2_avVw t3_avVx t4_avVy t5_avVz t6_avVA t7_avVB t8_avVC t9_avVD t10_avVE t11_avVF t12_avVG t13_avVH t14_avVI t15_avVJ t16_avVK t17_avVL t18_avVM t19_avVN t20_avVO t21_avVP t22_avVQ t23_avVR t24_avVS t25_avVT t26_avVU t27_avVV t28_avVW t29_avVX t30_avVY t31_avVZ t32_avW0 t33_avW1 t34_avW2 t35_avW3 t36_avW4. JsonFormat e_avXR t1_avVv -> JsonFormat e_avXR t2_avVw -> JsonFormat e_avXR t3_avVx -> JsonFormat e_avXR t4_avVy -> JsonFormat e_avXR t5_avVz -> JsonFormat e_avXR t6_avVA -> JsonFormat e_avXR t7_avVB -> JsonFormat e_avXR t8_avVC -> JsonFormat e_avXR t9_avVD -> JsonFormat e_avXR t10_avVE -> JsonFormat e_avXR t11_avVF -> JsonFormat e_avXR t12_avVG -> JsonFormat e_avXR t13_avVH -> JsonFormat e_avXR t14_avVI -> JsonFormat e_avXR t15_avVJ -> JsonFormat e_avXR t16_avVK -> JsonFormat e_avXR t17_avVL -> JsonFormat e_avXR t18_avVM -> JsonFormat e_avXR t19_avVN -> JsonFormat e_avXR t20_avVO -> JsonFormat e_avXR t21_avVP -> JsonFormat e_avXR t22_avVQ -> JsonFormat e_avXR t23_avVR -> JsonFormat e_avXR t24_avVS -> JsonFormat e_avXR t25_avVT -> JsonFormat e_avXR t26_avVU -> JsonFormat e_avXR t27_avVV -> JsonFormat e_avXR t28_avVW -> JsonFormat e_avXR t29_avVX -> JsonFormat e_avXR t30_avVY -> JsonFormat e_avXR t31_avVZ -> JsonFormat e_avXR t32_avW0 -> JsonFormat e_avXR t33_avW1 -> JsonFormat e_avXR t34_avW2 -> JsonFormat e_avXR t35_avW3 -> JsonFormat e_avXR t36_avW4 -> JsonFormat e_avXR (t1_avVv, t2_avVw, t3_avVx, t4_avVy, t5_avVz, t6_avVA, t7_avVB, t8_avVC, t9_avVD, t10_avVE, t11_avVF, t12_avVG, t13_avVH, t14_avVI, t15_avVJ, t16_avVK, t17_avVL, t18_avVM, t19_avVN, t20_avVO, t21_avVP, t22_avVQ, t23_avVR, t24_avVS, t25_avVT, t26_avVU, t27_avVV, t28_avVW, t29_avVX, t30_avVY, t31_avVZ, t32_avW0, t33_avW1, t34_avW2, t35_avW3, t36_avW4)
+ Composite.Aeson.Formats.Provided: tuple37JsonFormat :: forall e_aw0j t1_avXT t2_avXU t3_avXV t4_avXW t5_avXX t6_avXY t7_avXZ t8_avY0 t9_avY1 t10_avY2 t11_avY3 t12_avY4 t13_avY5 t14_avY6 t15_avY7 t16_avY8 t17_avY9 t18_avYa t19_avYb t20_avYc t21_avYd t22_avYe t23_avYf t24_avYg t25_avYh t26_avYi t27_avYj t28_avYk t29_avYl t30_avYm t31_avYn t32_avYo t33_avYp t34_avYq t35_avYr t36_avYs t37_avYt. JsonFormat e_aw0j t1_avXT -> JsonFormat e_aw0j t2_avXU -> JsonFormat e_aw0j t3_avXV -> JsonFormat e_aw0j t4_avXW -> JsonFormat e_aw0j t5_avXX -> JsonFormat e_aw0j t6_avXY -> JsonFormat e_aw0j t7_avXZ -> JsonFormat e_aw0j t8_avY0 -> JsonFormat e_aw0j t9_avY1 -> JsonFormat e_aw0j t10_avY2 -> JsonFormat e_aw0j t11_avY3 -> JsonFormat e_aw0j t12_avY4 -> JsonFormat e_aw0j t13_avY5 -> JsonFormat e_aw0j t14_avY6 -> JsonFormat e_aw0j t15_avY7 -> JsonFormat e_aw0j t16_avY8 -> JsonFormat e_aw0j t17_avY9 -> JsonFormat e_aw0j t18_avYa -> JsonFormat e_aw0j t19_avYb -> JsonFormat e_aw0j t20_avYc -> JsonFormat e_aw0j t21_avYd -> JsonFormat e_aw0j t22_avYe -> JsonFormat e_aw0j t23_avYf -> JsonFormat e_aw0j t24_avYg -> JsonFormat e_aw0j t25_avYh -> JsonFormat e_aw0j t26_avYi -> JsonFormat e_aw0j t27_avYj -> JsonFormat e_aw0j t28_avYk -> JsonFormat e_aw0j t29_avYl -> JsonFormat e_aw0j t30_avYm -> JsonFormat e_aw0j t31_avYn -> JsonFormat e_aw0j t32_avYo -> JsonFormat e_aw0j t33_avYp -> JsonFormat e_aw0j t34_avYq -> JsonFormat e_aw0j t35_avYr -> JsonFormat e_aw0j t36_avYs -> JsonFormat e_aw0j t37_avYt -> JsonFormat e_aw0j (t1_avXT, t2_avXU, t3_avXV, t4_avXW, t5_avXX, t6_avXY, t7_avXZ, t8_avY0, t9_avY1, t10_avY2, t11_avY3, t12_avY4, t13_avY5, t14_avY6, t15_avY7, t16_avY8, t17_avY9, t18_avYa, t19_avYb, t20_avYc, t21_avYd, t22_avYe, t23_avYf, t24_avYg, t25_avYh, t26_avYi, t27_avYj, t28_avYk, t29_avYl, t30_avYm, t31_avYn, t32_avYo, t33_avYp, t34_avYq, t35_avYr, t36_avYs, t37_avYt)
+ Composite.Aeson.Formats.Provided: tuple38JsonFormat :: forall e_aw2P t1_aw0l t2_aw0m t3_aw0n t4_aw0o t5_aw0p t6_aw0q t7_aw0r t8_aw0s t9_aw0t t10_aw0u t11_aw0v t12_aw0w t13_aw0x t14_aw0y t15_aw0z t16_aw0A t17_aw0B t18_aw0C t19_aw0D t20_aw0E t21_aw0F t22_aw0G t23_aw0H t24_aw0I t25_aw0J t26_aw0K t27_aw0L t28_aw0M t29_aw0N t30_aw0O t31_aw0P t32_aw0Q t33_aw0R t34_aw0S t35_aw0T t36_aw0U t37_aw0V t38_aw0W. JsonFormat e_aw2P t1_aw0l -> JsonFormat e_aw2P t2_aw0m -> JsonFormat e_aw2P t3_aw0n -> JsonFormat e_aw2P t4_aw0o -> JsonFormat e_aw2P t5_aw0p -> JsonFormat e_aw2P t6_aw0q -> JsonFormat e_aw2P t7_aw0r -> JsonFormat e_aw2P t8_aw0s -> JsonFormat e_aw2P t9_aw0t -> JsonFormat e_aw2P t10_aw0u -> JsonFormat e_aw2P t11_aw0v -> JsonFormat e_aw2P t12_aw0w -> JsonFormat e_aw2P t13_aw0x -> JsonFormat e_aw2P t14_aw0y -> JsonFormat e_aw2P t15_aw0z -> JsonFormat e_aw2P t16_aw0A -> JsonFormat e_aw2P t17_aw0B -> JsonFormat e_aw2P t18_aw0C -> JsonFormat e_aw2P t19_aw0D -> JsonFormat e_aw2P t20_aw0E -> JsonFormat e_aw2P t21_aw0F -> JsonFormat e_aw2P t22_aw0G -> JsonFormat e_aw2P t23_aw0H -> JsonFormat e_aw2P t24_aw0I -> JsonFormat e_aw2P t25_aw0J -> JsonFormat e_aw2P t26_aw0K -> JsonFormat e_aw2P t27_aw0L -> JsonFormat e_aw2P t28_aw0M -> JsonFormat e_aw2P t29_aw0N -> JsonFormat e_aw2P t30_aw0O -> JsonFormat e_aw2P t31_aw0P -> JsonFormat e_aw2P t32_aw0Q -> JsonFormat e_aw2P t33_aw0R -> JsonFormat e_aw2P t34_aw0S -> JsonFormat e_aw2P t35_aw0T -> JsonFormat e_aw2P t36_aw0U -> JsonFormat e_aw2P t37_aw0V -> JsonFormat e_aw2P t38_aw0W -> JsonFormat e_aw2P (t1_aw0l, t2_aw0m, t3_aw0n, t4_aw0o, t5_aw0p, t6_aw0q, t7_aw0r, t8_aw0s, t9_aw0t, t10_aw0u, t11_aw0v, t12_aw0w, t13_aw0x, t14_aw0y, t15_aw0z, t16_aw0A, t17_aw0B, t18_aw0C, t19_aw0D, t20_aw0E, t21_aw0F, t22_aw0G, t23_aw0H, t24_aw0I, t25_aw0J, t26_aw0K, t27_aw0L, t28_aw0M, t29_aw0N, t30_aw0O, t31_aw0P, t32_aw0Q, t33_aw0R, t34_aw0S, t35_aw0T, t36_aw0U, t37_aw0V, t38_aw0W)
+ Composite.Aeson.Formats.Provided: tuple39JsonFormat :: forall e_aw5p t1_aw2R t2_aw2S t3_aw2T t4_aw2U t5_aw2V t6_aw2W t7_aw2X t8_aw2Y t9_aw2Z t10_aw30 t11_aw31 t12_aw32 t13_aw33 t14_aw34 t15_aw35 t16_aw36 t17_aw37 t18_aw38 t19_aw39 t20_aw3a t21_aw3b t22_aw3c t23_aw3d t24_aw3e t25_aw3f t26_aw3g t27_aw3h t28_aw3i t29_aw3j t30_aw3k t31_aw3l t32_aw3m t33_aw3n t34_aw3o t35_aw3p t36_aw3q t37_aw3r t38_aw3s t39_aw3t. JsonFormat e_aw5p t1_aw2R -> JsonFormat e_aw5p t2_aw2S -> JsonFormat e_aw5p t3_aw2T -> JsonFormat e_aw5p t4_aw2U -> JsonFormat e_aw5p t5_aw2V -> JsonFormat e_aw5p t6_aw2W -> JsonFormat e_aw5p t7_aw2X -> JsonFormat e_aw5p t8_aw2Y -> JsonFormat e_aw5p t9_aw2Z -> JsonFormat e_aw5p t10_aw30 -> JsonFormat e_aw5p t11_aw31 -> JsonFormat e_aw5p t12_aw32 -> JsonFormat e_aw5p t13_aw33 -> JsonFormat e_aw5p t14_aw34 -> JsonFormat e_aw5p t15_aw35 -> JsonFormat e_aw5p t16_aw36 -> JsonFormat e_aw5p t17_aw37 -> JsonFormat e_aw5p t18_aw38 -> JsonFormat e_aw5p t19_aw39 -> JsonFormat e_aw5p t20_aw3a -> JsonFormat e_aw5p t21_aw3b -> JsonFormat e_aw5p t22_aw3c -> JsonFormat e_aw5p t23_aw3d -> JsonFormat e_aw5p t24_aw3e -> JsonFormat e_aw5p t25_aw3f -> JsonFormat e_aw5p t26_aw3g -> JsonFormat e_aw5p t27_aw3h -> JsonFormat e_aw5p t28_aw3i -> JsonFormat e_aw5p t29_aw3j -> JsonFormat e_aw5p t30_aw3k -> JsonFormat e_aw5p t31_aw3l -> JsonFormat e_aw5p t32_aw3m -> JsonFormat e_aw5p t33_aw3n -> JsonFormat e_aw5p t34_aw3o -> JsonFormat e_aw5p t35_aw3p -> JsonFormat e_aw5p t36_aw3q -> JsonFormat e_aw5p t37_aw3r -> JsonFormat e_aw5p t38_aw3s -> JsonFormat e_aw5p t39_aw3t -> JsonFormat e_aw5p (t1_aw2R, t2_aw2S, t3_aw2T, t4_aw2U, t5_aw2V, t6_aw2W, t7_aw2X, t8_aw2Y, t9_aw2Z, t10_aw30, t11_aw31, t12_aw32, t13_aw33, t14_aw34, t15_aw35, t16_aw36, t17_aw37, t18_aw38, t19_aw39, t20_aw3a, t21_aw3b, t22_aw3c, t23_aw3d, t24_aw3e, t25_aw3f, t26_aw3g, t27_aw3h, t28_aw3i, t29_aw3j, t30_aw3k, t31_aw3l, t32_aw3m, t33_aw3n, t34_aw3o, t35_aw3p, t36_aw3q, t37_aw3r, t38_aw3s, t39_aw3t)
+ Composite.Aeson.Formats.Provided: tuple3JsonFormat :: forall e_avf9 t1_aveV t2_aveW t3_aveX. JsonFormat e_avf9 t1_aveV -> JsonFormat e_avf9 t2_aveW -> JsonFormat e_avf9 t3_aveX -> JsonFormat e_avf9 (t1_aveV, t2_aveW, t3_aveX)
+ Composite.Aeson.Formats.Provided: tuple40JsonFormat :: forall e_aw83 t1_aw5r t2_aw5s t3_aw5t t4_aw5u t5_aw5v t6_aw5w t7_aw5x t8_aw5y t9_aw5z t10_aw5A t11_aw5B t12_aw5C t13_aw5D t14_aw5E t15_aw5F t16_aw5G t17_aw5H t18_aw5I t19_aw5J t20_aw5K t21_aw5L t22_aw5M t23_aw5N t24_aw5O t25_aw5P t26_aw5Q t27_aw5R t28_aw5S t29_aw5T t30_aw5U t31_aw5V t32_aw5W t33_aw5X t34_aw5Y t35_aw5Z t36_aw60 t37_aw61 t38_aw62 t39_aw63 t40_aw64. JsonFormat e_aw83 t1_aw5r -> JsonFormat e_aw83 t2_aw5s -> JsonFormat e_aw83 t3_aw5t -> JsonFormat e_aw83 t4_aw5u -> JsonFormat e_aw83 t5_aw5v -> JsonFormat e_aw83 t6_aw5w -> JsonFormat e_aw83 t7_aw5x -> JsonFormat e_aw83 t8_aw5y -> JsonFormat e_aw83 t9_aw5z -> JsonFormat e_aw83 t10_aw5A -> JsonFormat e_aw83 t11_aw5B -> JsonFormat e_aw83 t12_aw5C -> JsonFormat e_aw83 t13_aw5D -> JsonFormat e_aw83 t14_aw5E -> JsonFormat e_aw83 t15_aw5F -> JsonFormat e_aw83 t16_aw5G -> JsonFormat e_aw83 t17_aw5H -> JsonFormat e_aw83 t18_aw5I -> JsonFormat e_aw83 t19_aw5J -> JsonFormat e_aw83 t20_aw5K -> JsonFormat e_aw83 t21_aw5L -> JsonFormat e_aw83 t22_aw5M -> JsonFormat e_aw83 t23_aw5N -> JsonFormat e_aw83 t24_aw5O -> JsonFormat e_aw83 t25_aw5P -> JsonFormat e_aw83 t26_aw5Q -> JsonFormat e_aw83 t27_aw5R -> JsonFormat e_aw83 t28_aw5S -> JsonFormat e_aw83 t29_aw5T -> JsonFormat e_aw83 t30_aw5U -> JsonFormat e_aw83 t31_aw5V -> JsonFormat e_aw83 t32_aw5W -> JsonFormat e_aw83 t33_aw5X -> JsonFormat e_aw83 t34_aw5Y -> JsonFormat e_aw83 t35_aw5Z -> JsonFormat e_aw83 t36_aw60 -> JsonFormat e_aw83 t37_aw61 -> JsonFormat e_aw83 t38_aw62 -> JsonFormat e_aw83 t39_aw63 -> JsonFormat e_aw83 t40_aw64 -> JsonFormat e_aw83 (t1_aw5r, t2_aw5s, t3_aw5t, t4_aw5u, t5_aw5v, t6_aw5w, t7_aw5x, t8_aw5y, t9_aw5z, t10_aw5A, t11_aw5B, t12_aw5C, t13_aw5D, t14_aw5E, t15_aw5F, t16_aw5G, t17_aw5H, t18_aw5I, t19_aw5J, t20_aw5K, t21_aw5L, t22_aw5M, t23_aw5N, t24_aw5O, t25_aw5P, t26_aw5Q, t27_aw5R, t28_aw5S, t29_aw5T, t30_aw5U, t31_aw5V, t32_aw5W, t33_aw5X, t34_aw5Y, t35_aw5Z, t36_aw60, t37_aw61, t38_aw62, t39_aw63, t40_aw64)
+ Composite.Aeson.Formats.Provided: tuple41JsonFormat :: forall e_awaL t1_aw85 t2_aw86 t3_aw87 t4_aw88 t5_aw89 t6_aw8a t7_aw8b t8_aw8c t9_aw8d t10_aw8e t11_aw8f t12_aw8g t13_aw8h t14_aw8i t15_aw8j t16_aw8k t17_aw8l t18_aw8m t19_aw8n t20_aw8o t21_aw8p t22_aw8q t23_aw8r t24_aw8s t25_aw8t t26_aw8u t27_aw8v t28_aw8w t29_aw8x t30_aw8y t31_aw8z t32_aw8A t33_aw8B t34_aw8C t35_aw8D t36_aw8E t37_aw8F t38_aw8G t39_aw8H t40_aw8I t41_aw8J. JsonFormat e_awaL t1_aw85 -> JsonFormat e_awaL t2_aw86 -> JsonFormat e_awaL t3_aw87 -> JsonFormat e_awaL t4_aw88 -> JsonFormat e_awaL t5_aw89 -> JsonFormat e_awaL t6_aw8a -> JsonFormat e_awaL t7_aw8b -> JsonFormat e_awaL t8_aw8c -> JsonFormat e_awaL t9_aw8d -> JsonFormat e_awaL t10_aw8e -> JsonFormat e_awaL t11_aw8f -> JsonFormat e_awaL t12_aw8g -> JsonFormat e_awaL t13_aw8h -> JsonFormat e_awaL t14_aw8i -> JsonFormat e_awaL t15_aw8j -> JsonFormat e_awaL t16_aw8k -> JsonFormat e_awaL t17_aw8l -> JsonFormat e_awaL t18_aw8m -> JsonFormat e_awaL t19_aw8n -> JsonFormat e_awaL t20_aw8o -> JsonFormat e_awaL t21_aw8p -> JsonFormat e_awaL t22_aw8q -> JsonFormat e_awaL t23_aw8r -> JsonFormat e_awaL t24_aw8s -> JsonFormat e_awaL t25_aw8t -> JsonFormat e_awaL t26_aw8u -> JsonFormat e_awaL t27_aw8v -> JsonFormat e_awaL t28_aw8w -> JsonFormat e_awaL t29_aw8x -> JsonFormat e_awaL t30_aw8y -> JsonFormat e_awaL t31_aw8z -> JsonFormat e_awaL t32_aw8A -> JsonFormat e_awaL t33_aw8B -> JsonFormat e_awaL t34_aw8C -> JsonFormat e_awaL t35_aw8D -> JsonFormat e_awaL t36_aw8E -> JsonFormat e_awaL t37_aw8F -> JsonFormat e_awaL t38_aw8G -> JsonFormat e_awaL t39_aw8H -> JsonFormat e_awaL t40_aw8I -> JsonFormat e_awaL t41_aw8J -> JsonFormat e_awaL (t1_aw85, t2_aw86, t3_aw87, t4_aw88, t5_aw89, t6_aw8a, t7_aw8b, t8_aw8c, t9_aw8d, t10_aw8e, t11_aw8f, t12_aw8g, t13_aw8h, t14_aw8i, t15_aw8j, t16_aw8k, t17_aw8l, t18_aw8m, t19_aw8n, t20_aw8o, t21_aw8p, t22_aw8q, t23_aw8r, t24_aw8s, t25_aw8t, t26_aw8u, t27_aw8v, t28_aw8w, t29_aw8x, t30_aw8y, t31_aw8z, t32_aw8A, t33_aw8B, t34_aw8C, t35_aw8D, t36_aw8E, t37_aw8F, t38_aw8G, t39_aw8H, t40_aw8I, t41_aw8J)
+ Composite.Aeson.Formats.Provided: tuple42JsonFormat :: forall e_awdx t1_awaN t2_awaO t3_awaP t4_awaQ t5_awaR t6_awaS t7_awaT t8_awaU t9_awaV t10_awaW t11_awaX t12_awaY t13_awaZ t14_awb0 t15_awb1 t16_awb2 t17_awb3 t18_awb4 t19_awb5 t20_awb6 t21_awb7 t22_awb8 t23_awb9 t24_awba t25_awbb t26_awbc t27_awbd t28_awbe t29_awbf t30_awbg t31_awbh t32_awbi t33_awbj t34_awbk t35_awbl t36_awbm t37_awbn t38_awbo t39_awbp t40_awbq t41_awbr t42_awbs. JsonFormat e_awdx t1_awaN -> JsonFormat e_awdx t2_awaO -> JsonFormat e_awdx t3_awaP -> JsonFormat e_awdx t4_awaQ -> JsonFormat e_awdx t5_awaR -> JsonFormat e_awdx t6_awaS -> JsonFormat e_awdx t7_awaT -> JsonFormat e_awdx t8_awaU -> JsonFormat e_awdx t9_awaV -> JsonFormat e_awdx t10_awaW -> JsonFormat e_awdx t11_awaX -> JsonFormat e_awdx t12_awaY -> JsonFormat e_awdx t13_awaZ -> JsonFormat e_awdx t14_awb0 -> JsonFormat e_awdx t15_awb1 -> JsonFormat e_awdx t16_awb2 -> JsonFormat e_awdx t17_awb3 -> JsonFormat e_awdx t18_awb4 -> JsonFormat e_awdx t19_awb5 -> JsonFormat e_awdx t20_awb6 -> JsonFormat e_awdx t21_awb7 -> JsonFormat e_awdx t22_awb8 -> JsonFormat e_awdx t23_awb9 -> JsonFormat e_awdx t24_awba -> JsonFormat e_awdx t25_awbb -> JsonFormat e_awdx t26_awbc -> JsonFormat e_awdx t27_awbd -> JsonFormat e_awdx t28_awbe -> JsonFormat e_awdx t29_awbf -> JsonFormat e_awdx t30_awbg -> JsonFormat e_awdx t31_awbh -> JsonFormat e_awdx t32_awbi -> JsonFormat e_awdx t33_awbj -> JsonFormat e_awdx t34_awbk -> JsonFormat e_awdx t35_awbl -> JsonFormat e_awdx t36_awbm -> JsonFormat e_awdx t37_awbn -> JsonFormat e_awdx t38_awbo -> JsonFormat e_awdx t39_awbp -> JsonFormat e_awdx t40_awbq -> JsonFormat e_awdx t41_awbr -> JsonFormat e_awdx t42_awbs -> JsonFormat e_awdx (t1_awaN, t2_awaO, t3_awaP, t4_awaQ, t5_awaR, t6_awaS, t7_awaT, t8_awaU, t9_awaV, t10_awaW, t11_awaX, t12_awaY, t13_awaZ, t14_awb0, t15_awb1, t16_awb2, t17_awb3, t18_awb4, t19_awb5, t20_awb6, t21_awb7, t22_awb8, t23_awb9, t24_awba, t25_awbb, t26_awbc, t27_awbd, t28_awbe, t29_awbf, t30_awbg, t31_awbh, t32_awbi, t33_awbj, t34_awbk, t35_awbl, t36_awbm, t37_awbn, t38_awbo, t39_awbp, t40_awbq, t41_awbr, t42_awbs)
+ Composite.Aeson.Formats.Provided: tuple43JsonFormat :: forall e_awgn t1_awdz t2_awdA t3_awdB t4_awdC t5_awdD t6_awdE t7_awdF t8_awdG t9_awdH t10_awdI t11_awdJ t12_awdK t13_awdL t14_awdM t15_awdN t16_awdO t17_awdP t18_awdQ t19_awdR t20_awdS t21_awdT t22_awdU t23_awdV t24_awdW t25_awdX t26_awdY t27_awdZ t28_awe0 t29_awe1 t30_awe2 t31_awe3 t32_awe4 t33_awe5 t34_awe6 t35_awe7 t36_awe8 t37_awe9 t38_awea t39_aweb t40_awec t41_awed t42_awee t43_awef. JsonFormat e_awgn t1_awdz -> JsonFormat e_awgn t2_awdA -> JsonFormat e_awgn t3_awdB -> JsonFormat e_awgn t4_awdC -> JsonFormat e_awgn t5_awdD -> JsonFormat e_awgn t6_awdE -> JsonFormat e_awgn t7_awdF -> JsonFormat e_awgn t8_awdG -> JsonFormat e_awgn t9_awdH -> JsonFormat e_awgn t10_awdI -> JsonFormat e_awgn t11_awdJ -> JsonFormat e_awgn t12_awdK -> JsonFormat e_awgn t13_awdL -> JsonFormat e_awgn t14_awdM -> JsonFormat e_awgn t15_awdN -> JsonFormat e_awgn t16_awdO -> JsonFormat e_awgn t17_awdP -> JsonFormat e_awgn t18_awdQ -> JsonFormat e_awgn t19_awdR -> JsonFormat e_awgn t20_awdS -> JsonFormat e_awgn t21_awdT -> JsonFormat e_awgn t22_awdU -> JsonFormat e_awgn t23_awdV -> JsonFormat e_awgn t24_awdW -> JsonFormat e_awgn t25_awdX -> JsonFormat e_awgn t26_awdY -> JsonFormat e_awgn t27_awdZ -> JsonFormat e_awgn t28_awe0 -> JsonFormat e_awgn t29_awe1 -> JsonFormat e_awgn t30_awe2 -> JsonFormat e_awgn t31_awe3 -> JsonFormat e_awgn t32_awe4 -> JsonFormat e_awgn t33_awe5 -> JsonFormat e_awgn t34_awe6 -> JsonFormat e_awgn t35_awe7 -> JsonFormat e_awgn t36_awe8 -> JsonFormat e_awgn t37_awe9 -> JsonFormat e_awgn t38_awea -> JsonFormat e_awgn t39_aweb -> JsonFormat e_awgn t40_awec -> JsonFormat e_awgn t41_awed -> JsonFormat e_awgn t42_awee -> JsonFormat e_awgn t43_awef -> JsonFormat e_awgn (t1_awdz, t2_awdA, t3_awdB, t4_awdC, t5_awdD, t6_awdE, t7_awdF, t8_awdG, t9_awdH, t10_awdI, t11_awdJ, t12_awdK, t13_awdL, t14_awdM, t15_awdN, t16_awdO, t17_awdP, t18_awdQ, t19_awdR, t20_awdS, t21_awdT, t22_awdU, t23_awdV, t24_awdW, t25_awdX, t26_awdY, t27_awdZ, t28_awe0, t29_awe1, t30_awe2, t31_awe3, t32_awe4, t33_awe5, t34_awe6, t35_awe7, t36_awe8, t37_awe9, t38_awea, t39_aweb, t40_awec, t41_awed, t42_awee, t43_awef)
+ Composite.Aeson.Formats.Provided: tuple44JsonFormat :: forall e_awjh t1_awgp t2_awgq t3_awgr t4_awgs t5_awgt t6_awgu t7_awgv t8_awgw t9_awgx t10_awgy t11_awgz t12_awgA t13_awgB t14_awgC t15_awgD t16_awgE t17_awgF t18_awgG t19_awgH t20_awgI t21_awgJ t22_awgK t23_awgL t24_awgM t25_awgN t26_awgO t27_awgP t28_awgQ t29_awgR t30_awgS t31_awgT t32_awgU t33_awgV t34_awgW t35_awgX t36_awgY t37_awgZ t38_awh0 t39_awh1 t40_awh2 t41_awh3 t42_awh4 t43_awh5 t44_awh6. JsonFormat e_awjh t1_awgp -> JsonFormat e_awjh t2_awgq -> JsonFormat e_awjh t3_awgr -> JsonFormat e_awjh t4_awgs -> JsonFormat e_awjh t5_awgt -> JsonFormat e_awjh t6_awgu -> JsonFormat e_awjh t7_awgv -> JsonFormat e_awjh t8_awgw -> JsonFormat e_awjh t9_awgx -> JsonFormat e_awjh t10_awgy -> JsonFormat e_awjh t11_awgz -> JsonFormat e_awjh t12_awgA -> JsonFormat e_awjh t13_awgB -> JsonFormat e_awjh t14_awgC -> JsonFormat e_awjh t15_awgD -> JsonFormat e_awjh t16_awgE -> JsonFormat e_awjh t17_awgF -> JsonFormat e_awjh t18_awgG -> JsonFormat e_awjh t19_awgH -> JsonFormat e_awjh t20_awgI -> JsonFormat e_awjh t21_awgJ -> JsonFormat e_awjh t22_awgK -> JsonFormat e_awjh t23_awgL -> JsonFormat e_awjh t24_awgM -> JsonFormat e_awjh t25_awgN -> JsonFormat e_awjh t26_awgO -> JsonFormat e_awjh t27_awgP -> JsonFormat e_awjh t28_awgQ -> JsonFormat e_awjh t29_awgR -> JsonFormat e_awjh t30_awgS -> JsonFormat e_awjh t31_awgT -> JsonFormat e_awjh t32_awgU -> JsonFormat e_awjh t33_awgV -> JsonFormat e_awjh t34_awgW -> JsonFormat e_awjh t35_awgX -> JsonFormat e_awjh t36_awgY -> JsonFormat e_awjh t37_awgZ -> JsonFormat e_awjh t38_awh0 -> JsonFormat e_awjh t39_awh1 -> JsonFormat e_awjh t40_awh2 -> JsonFormat e_awjh t41_awh3 -> JsonFormat e_awjh t42_awh4 -> JsonFormat e_awjh t43_awh5 -> JsonFormat e_awjh t44_awh6 -> JsonFormat e_awjh (t1_awgp, t2_awgq, t3_awgr, t4_awgs, t5_awgt, t6_awgu, t7_awgv, t8_awgw, t9_awgx, t10_awgy, t11_awgz, t12_awgA, t13_awgB, t14_awgC, t15_awgD, t16_awgE, t17_awgF, t18_awgG, t19_awgH, t20_awgI, t21_awgJ, t22_awgK, t23_awgL, t24_awgM, t25_awgN, t26_awgO, t27_awgP, t28_awgQ, t29_awgR, t30_awgS, t31_awgT, t32_awgU, t33_awgV, t34_awgW, t35_awgX, t36_awgY, t37_awgZ, t38_awh0, t39_awh1, t40_awh2, t41_awh3, t42_awh4, t43_awh5, t44_awh6)
+ Composite.Aeson.Formats.Provided: tuple45JsonFormat :: forall e_awmf t1_awjj t2_awjk t3_awjl t4_awjm t5_awjn t6_awjo t7_awjp t8_awjq t9_awjr t10_awjs t11_awjt t12_awju t13_awjv t14_awjw t15_awjx t16_awjy t17_awjz t18_awjA t19_awjB t20_awjC t21_awjD t22_awjE t23_awjF t24_awjG t25_awjH t26_awjI t27_awjJ t28_awjK t29_awjL t30_awjM t31_awjN t32_awjO t33_awjP t34_awjQ t35_awjR t36_awjS t37_awjT t38_awjU t39_awjV t40_awjW t41_awjX t42_awjY t43_awjZ t44_awk0 t45_awk1. JsonFormat e_awmf t1_awjj -> JsonFormat e_awmf t2_awjk -> JsonFormat e_awmf t3_awjl -> JsonFormat e_awmf t4_awjm -> JsonFormat e_awmf t5_awjn -> JsonFormat e_awmf t6_awjo -> JsonFormat e_awmf t7_awjp -> JsonFormat e_awmf t8_awjq -> JsonFormat e_awmf t9_awjr -> JsonFormat e_awmf t10_awjs -> JsonFormat e_awmf t11_awjt -> JsonFormat e_awmf t12_awju -> JsonFormat e_awmf t13_awjv -> JsonFormat e_awmf t14_awjw -> JsonFormat e_awmf t15_awjx -> JsonFormat e_awmf t16_awjy -> JsonFormat e_awmf t17_awjz -> JsonFormat e_awmf t18_awjA -> JsonFormat e_awmf t19_awjB -> JsonFormat e_awmf t20_awjC -> JsonFormat e_awmf t21_awjD -> JsonFormat e_awmf t22_awjE -> JsonFormat e_awmf t23_awjF -> JsonFormat e_awmf t24_awjG -> JsonFormat e_awmf t25_awjH -> JsonFormat e_awmf t26_awjI -> JsonFormat e_awmf t27_awjJ -> JsonFormat e_awmf t28_awjK -> JsonFormat e_awmf t29_awjL -> JsonFormat e_awmf t30_awjM -> JsonFormat e_awmf t31_awjN -> JsonFormat e_awmf t32_awjO -> JsonFormat e_awmf t33_awjP -> JsonFormat e_awmf t34_awjQ -> JsonFormat e_awmf t35_awjR -> JsonFormat e_awmf t36_awjS -> JsonFormat e_awmf t37_awjT -> JsonFormat e_awmf t38_awjU -> JsonFormat e_awmf t39_awjV -> JsonFormat e_awmf t40_awjW -> JsonFormat e_awmf t41_awjX -> JsonFormat e_awmf t42_awjY -> JsonFormat e_awmf t43_awjZ -> JsonFormat e_awmf t44_awk0 -> JsonFormat e_awmf t45_awk1 -> JsonFormat e_awmf (t1_awjj, t2_awjk, t3_awjl, t4_awjm, t5_awjn, t6_awjo, t7_awjp, t8_awjq, t9_awjr, t10_awjs, t11_awjt, t12_awju, t13_awjv, t14_awjw, t15_awjx, t16_awjy, t17_awjz, t18_awjA, t19_awjB, t20_awjC, t21_awjD, t22_awjE, t23_awjF, t24_awjG, t25_awjH, t26_awjI, t27_awjJ, t28_awjK, t29_awjL, t30_awjM, t31_awjN, t32_awjO, t33_awjP, t34_awjQ, t35_awjR, t36_awjS, t37_awjT, t38_awjU, t39_awjV, t40_awjW, t41_awjX, t42_awjY, t43_awjZ, t44_awk0, t45_awk1)
+ Composite.Aeson.Formats.Provided: tuple46JsonFormat :: forall e_awph t1_awmh t2_awmi t3_awmj t4_awmk t5_awml t6_awmm t7_awmn t8_awmo t9_awmp t10_awmq t11_awmr t12_awms t13_awmt t14_awmu t15_awmv t16_awmw t17_awmx t18_awmy t19_awmz t20_awmA t21_awmB t22_awmC t23_awmD t24_awmE t25_awmF t26_awmG t27_awmH t28_awmI t29_awmJ t30_awmK t31_awmL t32_awmM t33_awmN t34_awmO t35_awmP t36_awmQ t37_awmR t38_awmS t39_awmT t40_awmU t41_awmV t42_awmW t43_awmX t44_awmY t45_awmZ t46_awn0. JsonFormat e_awph t1_awmh -> JsonFormat e_awph t2_awmi -> JsonFormat e_awph t3_awmj -> JsonFormat e_awph t4_awmk -> JsonFormat e_awph t5_awml -> JsonFormat e_awph t6_awmm -> JsonFormat e_awph t7_awmn -> JsonFormat e_awph t8_awmo -> JsonFormat e_awph t9_awmp -> JsonFormat e_awph t10_awmq -> JsonFormat e_awph t11_awmr -> JsonFormat e_awph t12_awms -> JsonFormat e_awph t13_awmt -> JsonFormat e_awph t14_awmu -> JsonFormat e_awph t15_awmv -> JsonFormat e_awph t16_awmw -> JsonFormat e_awph t17_awmx -> JsonFormat e_awph t18_awmy -> JsonFormat e_awph t19_awmz -> JsonFormat e_awph t20_awmA -> JsonFormat e_awph t21_awmB -> JsonFormat e_awph t22_awmC -> JsonFormat e_awph t23_awmD -> JsonFormat e_awph t24_awmE -> JsonFormat e_awph t25_awmF -> JsonFormat e_awph t26_awmG -> JsonFormat e_awph t27_awmH -> JsonFormat e_awph t28_awmI -> JsonFormat e_awph t29_awmJ -> JsonFormat e_awph t30_awmK -> JsonFormat e_awph t31_awmL -> JsonFormat e_awph t32_awmM -> JsonFormat e_awph t33_awmN -> JsonFormat e_awph t34_awmO -> JsonFormat e_awph t35_awmP -> JsonFormat e_awph t36_awmQ -> JsonFormat e_awph t37_awmR -> JsonFormat e_awph t38_awmS -> JsonFormat e_awph t39_awmT -> JsonFormat e_awph t40_awmU -> JsonFormat e_awph t41_awmV -> JsonFormat e_awph t42_awmW -> JsonFormat e_awph t43_awmX -> JsonFormat e_awph t44_awmY -> JsonFormat e_awph t45_awmZ -> JsonFormat e_awph t46_awn0 -> JsonFormat e_awph (t1_awmh, t2_awmi, t3_awmj, t4_awmk, t5_awml, t6_awmm, t7_awmn, t8_awmo, t9_awmp, t10_awmq, t11_awmr, t12_awms, t13_awmt, t14_awmu, t15_awmv, t16_awmw, t17_awmx, t18_awmy, t19_awmz, t20_awmA, t21_awmB, t22_awmC, t23_awmD, t24_awmE, t25_awmF, t26_awmG, t27_awmH, t28_awmI, t29_awmJ, t30_awmK, t31_awmL, t32_awmM, t33_awmN, t34_awmO, t35_awmP, t36_awmQ, t37_awmR, t38_awmS, t39_awmT, t40_awmU, t41_awmV, t42_awmW, t43_awmX, t44_awmY, t45_awmZ, t46_awn0)
+ Composite.Aeson.Formats.Provided: tuple47JsonFormat :: forall e_awsn t1_awpj t2_awpk t3_awpl t4_awpm t5_awpn t6_awpo t7_awpp t8_awpq t9_awpr t10_awps t11_awpt t12_awpu t13_awpv t14_awpw t15_awpx t16_awpy t17_awpz t18_awpA t19_awpB t20_awpC t21_awpD t22_awpE t23_awpF t24_awpG t25_awpH t26_awpI t27_awpJ t28_awpK t29_awpL t30_awpM t31_awpN t32_awpO t33_awpP t34_awpQ t35_awpR t36_awpS t37_awpT t38_awpU t39_awpV t40_awpW t41_awpX t42_awpY t43_awpZ t44_awq0 t45_awq1 t46_awq2 t47_awq3. JsonFormat e_awsn t1_awpj -> JsonFormat e_awsn t2_awpk -> JsonFormat e_awsn t3_awpl -> JsonFormat e_awsn t4_awpm -> JsonFormat e_awsn t5_awpn -> JsonFormat e_awsn t6_awpo -> JsonFormat e_awsn t7_awpp -> JsonFormat e_awsn t8_awpq -> JsonFormat e_awsn t9_awpr -> JsonFormat e_awsn t10_awps -> JsonFormat e_awsn t11_awpt -> JsonFormat e_awsn t12_awpu -> JsonFormat e_awsn t13_awpv -> JsonFormat e_awsn t14_awpw -> JsonFormat e_awsn t15_awpx -> JsonFormat e_awsn t16_awpy -> JsonFormat e_awsn t17_awpz -> JsonFormat e_awsn t18_awpA -> JsonFormat e_awsn t19_awpB -> JsonFormat e_awsn t20_awpC -> JsonFormat e_awsn t21_awpD -> JsonFormat e_awsn t22_awpE -> JsonFormat e_awsn t23_awpF -> JsonFormat e_awsn t24_awpG -> JsonFormat e_awsn t25_awpH -> JsonFormat e_awsn t26_awpI -> JsonFormat e_awsn t27_awpJ -> JsonFormat e_awsn t28_awpK -> JsonFormat e_awsn t29_awpL -> JsonFormat e_awsn t30_awpM -> JsonFormat e_awsn t31_awpN -> JsonFormat e_awsn t32_awpO -> JsonFormat e_awsn t33_awpP -> JsonFormat e_awsn t34_awpQ -> JsonFormat e_awsn t35_awpR -> JsonFormat e_awsn t36_awpS -> JsonFormat e_awsn t37_awpT -> JsonFormat e_awsn t38_awpU -> JsonFormat e_awsn t39_awpV -> JsonFormat e_awsn t40_awpW -> JsonFormat e_awsn t41_awpX -> JsonFormat e_awsn t42_awpY -> JsonFormat e_awsn t43_awpZ -> JsonFormat e_awsn t44_awq0 -> JsonFormat e_awsn t45_awq1 -> JsonFormat e_awsn t46_awq2 -> JsonFormat e_awsn t47_awq3 -> JsonFormat e_awsn (t1_awpj, t2_awpk, t3_awpl, t4_awpm, t5_awpn, t6_awpo, t7_awpp, t8_awpq, t9_awpr, t10_awps, t11_awpt, t12_awpu, t13_awpv, t14_awpw, t15_awpx, t16_awpy, t17_awpz, t18_awpA, t19_awpB, t20_awpC, t21_awpD, t22_awpE, t23_awpF, t24_awpG, t25_awpH, t26_awpI, t27_awpJ, t28_awpK, t29_awpL, t30_awpM, t31_awpN, t32_awpO, t33_awpP, t34_awpQ, t35_awpR, t36_awpS, t37_awpT, t38_awpU, t39_awpV, t40_awpW, t41_awpX, t42_awpY, t43_awpZ, t44_awq0, t45_awq1, t46_awq2, t47_awq3)
+ Composite.Aeson.Formats.Provided: tuple48JsonFormat :: forall e_awvx t1_awsp t2_awsq t3_awsr t4_awss t5_awst t6_awsu t7_awsv t8_awsw t9_awsx t10_awsy t11_awsz t12_awsA t13_awsB t14_awsC t15_awsD t16_awsE t17_awsF t18_awsG t19_awsH t20_awsI t21_awsJ t22_awsK t23_awsL t24_awsM t25_awsN t26_awsO t27_awsP t28_awsQ t29_awsR t30_awsS t31_awsT t32_awsU t33_awsV t34_awsW t35_awsX t36_awsY t37_awsZ t38_awt0 t39_awt1 t40_awt2 t41_awt3 t42_awt4 t43_awt5 t44_awt6 t45_awt7 t46_awt8 t47_awt9 t48_awta. JsonFormat e_awvx t1_awsp -> JsonFormat e_awvx t2_awsq -> JsonFormat e_awvx t3_awsr -> JsonFormat e_awvx t4_awss -> JsonFormat e_awvx t5_awst -> JsonFormat e_awvx t6_awsu -> JsonFormat e_awvx t7_awsv -> JsonFormat e_awvx t8_awsw -> JsonFormat e_awvx t9_awsx -> JsonFormat e_awvx t10_awsy -> JsonFormat e_awvx t11_awsz -> JsonFormat e_awvx t12_awsA -> JsonFormat e_awvx t13_awsB -> JsonFormat e_awvx t14_awsC -> JsonFormat e_awvx t15_awsD -> JsonFormat e_awvx t16_awsE -> JsonFormat e_awvx t17_awsF -> JsonFormat e_awvx t18_awsG -> JsonFormat e_awvx t19_awsH -> JsonFormat e_awvx t20_awsI -> JsonFormat e_awvx t21_awsJ -> JsonFormat e_awvx t22_awsK -> JsonFormat e_awvx t23_awsL -> JsonFormat e_awvx t24_awsM -> JsonFormat e_awvx t25_awsN -> JsonFormat e_awvx t26_awsO -> JsonFormat e_awvx t27_awsP -> JsonFormat e_awvx t28_awsQ -> JsonFormat e_awvx t29_awsR -> JsonFormat e_awvx t30_awsS -> JsonFormat e_awvx t31_awsT -> JsonFormat e_awvx t32_awsU -> JsonFormat e_awvx t33_awsV -> JsonFormat e_awvx t34_awsW -> JsonFormat e_awvx t35_awsX -> JsonFormat e_awvx t36_awsY -> JsonFormat e_awvx t37_awsZ -> JsonFormat e_awvx t38_awt0 -> JsonFormat e_awvx t39_awt1 -> JsonFormat e_awvx t40_awt2 -> JsonFormat e_awvx t41_awt3 -> JsonFormat e_awvx t42_awt4 -> JsonFormat e_awvx t43_awt5 -> JsonFormat e_awvx t44_awt6 -> JsonFormat e_awvx t45_awt7 -> JsonFormat e_awvx t46_awt8 -> JsonFormat e_awvx t47_awt9 -> JsonFormat e_awvx t48_awta -> JsonFormat e_awvx (t1_awsp, t2_awsq, t3_awsr, t4_awss, t5_awst, t6_awsu, t7_awsv, t8_awsw, t9_awsx, t10_awsy, t11_awsz, t12_awsA, t13_awsB, t14_awsC, t15_awsD, t16_awsE, t17_awsF, t18_awsG, t19_awsH, t20_awsI, t21_awsJ, t22_awsK, t23_awsL, t24_awsM, t25_awsN, t26_awsO, t27_awsP, t28_awsQ, t29_awsR, t30_awsS, t31_awsT, t32_awsU, t33_awsV, t34_awsW, t35_awsX, t36_awsY, t37_awsZ, t38_awt0, t39_awt1, t40_awt2, t41_awt3, t42_awt4, t43_awt5, t44_awt6, t45_awt7, t46_awt8, t47_awt9, t48_awta)
+ Composite.Aeson.Formats.Provided: tuple49JsonFormat :: forall e_awyL t1_awvz t2_awvA t3_awvB t4_awvC t5_awvD t6_awvE t7_awvF t8_awvG t9_awvH t10_awvI t11_awvJ t12_awvK t13_awvL t14_awvM t15_awvN t16_awvO t17_awvP t18_awvQ t19_awvR t20_awvS t21_awvT t22_awvU t23_awvV t24_awvW t25_awvX t26_awvY t27_awvZ t28_aww0 t29_aww1 t30_aww2 t31_aww3 t32_aww4 t33_aww5 t34_aww6 t35_aww7 t36_aww8 t37_aww9 t38_awwa t39_awwb t40_awwc t41_awwd t42_awwe t43_awwf t44_awwg t45_awwh t46_awwi t47_awwj t48_awwk t49_awwl. JsonFormat e_awyL t1_awvz -> JsonFormat e_awyL t2_awvA -> JsonFormat e_awyL t3_awvB -> JsonFormat e_awyL t4_awvC -> JsonFormat e_awyL t5_awvD -> JsonFormat e_awyL t6_awvE -> JsonFormat e_awyL t7_awvF -> JsonFormat e_awyL t8_awvG -> JsonFormat e_awyL t9_awvH -> JsonFormat e_awyL t10_awvI -> JsonFormat e_awyL t11_awvJ -> JsonFormat e_awyL t12_awvK -> JsonFormat e_awyL t13_awvL -> JsonFormat e_awyL t14_awvM -> JsonFormat e_awyL t15_awvN -> JsonFormat e_awyL t16_awvO -> JsonFormat e_awyL t17_awvP -> JsonFormat e_awyL t18_awvQ -> JsonFormat e_awyL t19_awvR -> JsonFormat e_awyL t20_awvS -> JsonFormat e_awyL t21_awvT -> JsonFormat e_awyL t22_awvU -> JsonFormat e_awyL t23_awvV -> JsonFormat e_awyL t24_awvW -> JsonFormat e_awyL t25_awvX -> JsonFormat e_awyL t26_awvY -> JsonFormat e_awyL t27_awvZ -> JsonFormat e_awyL t28_aww0 -> JsonFormat e_awyL t29_aww1 -> JsonFormat e_awyL t30_aww2 -> JsonFormat e_awyL t31_aww3 -> JsonFormat e_awyL t32_aww4 -> JsonFormat e_awyL t33_aww5 -> JsonFormat e_awyL t34_aww6 -> JsonFormat e_awyL t35_aww7 -> JsonFormat e_awyL t36_aww8 -> JsonFormat e_awyL t37_aww9 -> JsonFormat e_awyL t38_awwa -> JsonFormat e_awyL t39_awwb -> JsonFormat e_awyL t40_awwc -> JsonFormat e_awyL t41_awwd -> JsonFormat e_awyL t42_awwe -> JsonFormat e_awyL t43_awwf -> JsonFormat e_awyL t44_awwg -> JsonFormat e_awyL t45_awwh -> JsonFormat e_awyL t46_awwi -> JsonFormat e_awyL t47_awwj -> JsonFormat e_awyL t48_awwk -> JsonFormat e_awyL t49_awwl -> JsonFormat e_awyL (t1_awvz, t2_awvA, t3_awvB, t4_awvC, t5_awvD, t6_awvE, t7_awvF, t8_awvG, t9_awvH, t10_awvI, t11_awvJ, t12_awvK, t13_awvL, t14_awvM, t15_awvN, t16_awvO, t17_awvP, t18_awvQ, t19_awvR, t20_awvS, t21_awvT, t22_awvU, t23_awvV, t24_awvW, t25_awvX, t26_awvY, t27_awvZ, t28_aww0, t29_aww1, t30_aww2, t31_aww3, t32_aww4, t33_aww5, t34_aww6, t35_aww7, t36_aww8, t37_aww9, t38_awwa, t39_awwb, t40_awwc, t41_awwd, t42_awwe, t43_awwf, t44_awwg, t45_awwh, t46_awwi, t47_awwj, t48_awwk, t49_awwl)
+ Composite.Aeson.Formats.Provided: tuple4JsonFormat :: forall e_avft t1_avfb t2_avfc t3_avfd t4_avfe. JsonFormat e_avft t1_avfb -> JsonFormat e_avft t2_avfc -> JsonFormat e_avft t3_avfd -> JsonFormat e_avft t4_avfe -> JsonFormat e_avft (t1_avfb, t2_avfc, t3_avfd, t4_avfe)
+ Composite.Aeson.Formats.Provided: tuple50JsonFormat :: forall e_awC3 t1_awyN t2_awyO t3_awyP t4_awyQ t5_awyR t6_awyS t7_awyT t8_awyU t9_awyV t10_awyW t11_awyX t12_awyY t13_awyZ t14_awz0 t15_awz1 t16_awz2 t17_awz3 t18_awz4 t19_awz5 t20_awz6 t21_awz7 t22_awz8 t23_awz9 t24_awza t25_awzb t26_awzc t27_awzd t28_awze t29_awzf t30_awzg t31_awzh t32_awzi t33_awzj t34_awzk t35_awzl t36_awzm t37_awzn t38_awzo t39_awzp t40_awzq t41_awzr t42_awzs t43_awzt t44_awzu t45_awzv t46_awzw t47_awzx t48_awzy t49_awzz t50_awzA. JsonFormat e_awC3 t1_awyN -> JsonFormat e_awC3 t2_awyO -> JsonFormat e_awC3 t3_awyP -> JsonFormat e_awC3 t4_awyQ -> JsonFormat e_awC3 t5_awyR -> JsonFormat e_awC3 t6_awyS -> JsonFormat e_awC3 t7_awyT -> JsonFormat e_awC3 t8_awyU -> JsonFormat e_awC3 t9_awyV -> JsonFormat e_awC3 t10_awyW -> JsonFormat e_awC3 t11_awyX -> JsonFormat e_awC3 t12_awyY -> JsonFormat e_awC3 t13_awyZ -> JsonFormat e_awC3 t14_awz0 -> JsonFormat e_awC3 t15_awz1 -> JsonFormat e_awC3 t16_awz2 -> JsonFormat e_awC3 t17_awz3 -> JsonFormat e_awC3 t18_awz4 -> JsonFormat e_awC3 t19_awz5 -> JsonFormat e_awC3 t20_awz6 -> JsonFormat e_awC3 t21_awz7 -> JsonFormat e_awC3 t22_awz8 -> JsonFormat e_awC3 t23_awz9 -> JsonFormat e_awC3 t24_awza -> JsonFormat e_awC3 t25_awzb -> JsonFormat e_awC3 t26_awzc -> JsonFormat e_awC3 t27_awzd -> JsonFormat e_awC3 t28_awze -> JsonFormat e_awC3 t29_awzf -> JsonFormat e_awC3 t30_awzg -> JsonFormat e_awC3 t31_awzh -> JsonFormat e_awC3 t32_awzi -> JsonFormat e_awC3 t33_awzj -> JsonFormat e_awC3 t34_awzk -> JsonFormat e_awC3 t35_awzl -> JsonFormat e_awC3 t36_awzm -> JsonFormat e_awC3 t37_awzn -> JsonFormat e_awC3 t38_awzo -> JsonFormat e_awC3 t39_awzp -> JsonFormat e_awC3 t40_awzq -> JsonFormat e_awC3 t41_awzr -> JsonFormat e_awC3 t42_awzs -> JsonFormat e_awC3 t43_awzt -> JsonFormat e_awC3 t44_awzu -> JsonFormat e_awC3 t45_awzv -> JsonFormat e_awC3 t46_awzw -> JsonFormat e_awC3 t47_awzx -> JsonFormat e_awC3 t48_awzy -> JsonFormat e_awC3 t49_awzz -> JsonFormat e_awC3 t50_awzA -> JsonFormat e_awC3 (t1_awyN, t2_awyO, t3_awyP, t4_awyQ, t5_awyR, t6_awyS, t7_awyT, t8_awyU, t9_awyV, t10_awyW, t11_awyX, t12_awyY, t13_awyZ, t14_awz0, t15_awz1, t16_awz2, t17_awz3, t18_awz4, t19_awz5, t20_awz6, t21_awz7, t22_awz8, t23_awz9, t24_awza, t25_awzb, t26_awzc, t27_awzd, t28_awze, t29_awzf, t30_awzg, t31_awzh, t32_awzi, t33_awzj, t34_awzk, t35_awzl, t36_awzm, t37_awzn, t38_awzo, t39_awzp, t40_awzq, t41_awzr, t42_awzs, t43_awzt, t44_awzu, t45_awzv, t46_awzw, t47_awzx, t48_awzy, t49_awzz, t50_awzA)
+ Composite.Aeson.Formats.Provided: tuple51JsonFormat :: forall e_awFp t1_awC5 t2_awC6 t3_awC7 t4_awC8 t5_awC9 t6_awCa t7_awCb t8_awCc t9_awCd t10_awCe t11_awCf t12_awCg t13_awCh t14_awCi t15_awCj t16_awCk t17_awCl t18_awCm t19_awCn t20_awCo t21_awCp t22_awCq t23_awCr t24_awCs t25_awCt t26_awCu t27_awCv t28_awCw t29_awCx t30_awCy t31_awCz t32_awCA t33_awCB t34_awCC t35_awCD t36_awCE t37_awCF t38_awCG t39_awCH t40_awCI t41_awCJ t42_awCK t43_awCL t44_awCM t45_awCN t46_awCO t47_awCP t48_awCQ t49_awCR t50_awCS t51_awCT. JsonFormat e_awFp t1_awC5 -> JsonFormat e_awFp t2_awC6 -> JsonFormat e_awFp t3_awC7 -> JsonFormat e_awFp t4_awC8 -> JsonFormat e_awFp t5_awC9 -> JsonFormat e_awFp t6_awCa -> JsonFormat e_awFp t7_awCb -> JsonFormat e_awFp t8_awCc -> JsonFormat e_awFp t9_awCd -> JsonFormat e_awFp t10_awCe -> JsonFormat e_awFp t11_awCf -> JsonFormat e_awFp t12_awCg -> JsonFormat e_awFp t13_awCh -> JsonFormat e_awFp t14_awCi -> JsonFormat e_awFp t15_awCj -> JsonFormat e_awFp t16_awCk -> JsonFormat e_awFp t17_awCl -> JsonFormat e_awFp t18_awCm -> JsonFormat e_awFp t19_awCn -> JsonFormat e_awFp t20_awCo -> JsonFormat e_awFp t21_awCp -> JsonFormat e_awFp t22_awCq -> JsonFormat e_awFp t23_awCr -> JsonFormat e_awFp t24_awCs -> JsonFormat e_awFp t25_awCt -> JsonFormat e_awFp t26_awCu -> JsonFormat e_awFp t27_awCv -> JsonFormat e_awFp t28_awCw -> JsonFormat e_awFp t29_awCx -> JsonFormat e_awFp t30_awCy -> JsonFormat e_awFp t31_awCz -> JsonFormat e_awFp t32_awCA -> JsonFormat e_awFp t33_awCB -> JsonFormat e_awFp t34_awCC -> JsonFormat e_awFp t35_awCD -> JsonFormat e_awFp t36_awCE -> JsonFormat e_awFp t37_awCF -> JsonFormat e_awFp t38_awCG -> JsonFormat e_awFp t39_awCH -> JsonFormat e_awFp t40_awCI -> JsonFormat e_awFp t41_awCJ -> JsonFormat e_awFp t42_awCK -> JsonFormat e_awFp t43_awCL -> JsonFormat e_awFp t44_awCM -> JsonFormat e_awFp t45_awCN -> JsonFormat e_awFp t46_awCO -> JsonFormat e_awFp t47_awCP -> JsonFormat e_awFp t48_awCQ -> JsonFormat e_awFp t49_awCR -> JsonFormat e_awFp t50_awCS -> JsonFormat e_awFp t51_awCT -> JsonFormat e_awFp (t1_awC5, t2_awC6, t3_awC7, t4_awC8, t5_awC9, t6_awCa, t7_awCb, t8_awCc, t9_awCd, t10_awCe, t11_awCf, t12_awCg, t13_awCh, t14_awCi, t15_awCj, t16_awCk, t17_awCl, t18_awCm, t19_awCn, t20_awCo, t21_awCp, t22_awCq, t23_awCr, t24_awCs, t25_awCt, t26_awCu, t27_awCv, t28_awCw, t29_awCx, t30_awCy, t31_awCz, t32_awCA, t33_awCB, t34_awCC, t35_awCD, t36_awCE, t37_awCF, t38_awCG, t39_awCH, t40_awCI, t41_awCJ, t42_awCK, t43_awCL, t44_awCM, t45_awCN, t46_awCO, t47_awCP, t48_awCQ, t49_awCR, t50_awCS, t51_awCT)
+ Composite.Aeson.Formats.Provided: tuple52JsonFormat :: forall e_awIP t1_awFr t2_awFs t3_awFt t4_awFu t5_awFv t6_awFw t7_awFx t8_awFy t9_awFz t10_awFA t11_awFB t12_awFC t13_awFD t14_awFE t15_awFF t16_awFG t17_awFH t18_awFI t19_awFJ t20_awFK t21_awFL t22_awFM t23_awFN t24_awFO t25_awFP t26_awFQ t27_awFR t28_awFS t29_awFT t30_awFU t31_awFV t32_awFW t33_awFX t34_awFY t35_awFZ t36_awG0 t37_awG1 t38_awG2 t39_awG3 t40_awG4 t41_awG5 t42_awG6 t43_awG7 t44_awG8 t45_awG9 t46_awGa t47_awGb t48_awGc t49_awGd t50_awGe t51_awGf t52_awGg. JsonFormat e_awIP t1_awFr -> JsonFormat e_awIP t2_awFs -> JsonFormat e_awIP t3_awFt -> JsonFormat e_awIP t4_awFu -> JsonFormat e_awIP t5_awFv -> JsonFormat e_awIP t6_awFw -> JsonFormat e_awIP t7_awFx -> JsonFormat e_awIP t8_awFy -> JsonFormat e_awIP t9_awFz -> JsonFormat e_awIP t10_awFA -> JsonFormat e_awIP t11_awFB -> JsonFormat e_awIP t12_awFC -> JsonFormat e_awIP t13_awFD -> JsonFormat e_awIP t14_awFE -> JsonFormat e_awIP t15_awFF -> JsonFormat e_awIP t16_awFG -> JsonFormat e_awIP t17_awFH -> JsonFormat e_awIP t18_awFI -> JsonFormat e_awIP t19_awFJ -> JsonFormat e_awIP t20_awFK -> JsonFormat e_awIP t21_awFL -> JsonFormat e_awIP t22_awFM -> JsonFormat e_awIP t23_awFN -> JsonFormat e_awIP t24_awFO -> JsonFormat e_awIP t25_awFP -> JsonFormat e_awIP t26_awFQ -> JsonFormat e_awIP t27_awFR -> JsonFormat e_awIP t28_awFS -> JsonFormat e_awIP t29_awFT -> JsonFormat e_awIP t30_awFU -> JsonFormat e_awIP t31_awFV -> JsonFormat e_awIP t32_awFW -> JsonFormat e_awIP t33_awFX -> JsonFormat e_awIP t34_awFY -> JsonFormat e_awIP t35_awFZ -> JsonFormat e_awIP t36_awG0 -> JsonFormat e_awIP t37_awG1 -> JsonFormat e_awIP t38_awG2 -> JsonFormat e_awIP t39_awG3 -> JsonFormat e_awIP t40_awG4 -> JsonFormat e_awIP t41_awG5 -> JsonFormat e_awIP t42_awG6 -> JsonFormat e_awIP t43_awG7 -> JsonFormat e_awIP t44_awG8 -> JsonFormat e_awIP t45_awG9 -> JsonFormat e_awIP t46_awGa -> JsonFormat e_awIP t47_awGb -> JsonFormat e_awIP t48_awGc -> JsonFormat e_awIP t49_awGd -> JsonFormat e_awIP t50_awGe -> JsonFormat e_awIP t51_awGf -> JsonFormat e_awIP t52_awGg -> JsonFormat e_awIP (t1_awFr, t2_awFs, t3_awFt, t4_awFu, t5_awFv, t6_awFw, t7_awFx, t8_awFy, t9_awFz, t10_awFA, t11_awFB, t12_awFC, t13_awFD, t14_awFE, t15_awFF, t16_awFG, t17_awFH, t18_awFI, t19_awFJ, t20_awFK, t21_awFL, t22_awFM, t23_awFN, t24_awFO, t25_awFP, t26_awFQ, t27_awFR, t28_awFS, t29_awFT, t30_awFU, t31_awFV, t32_awFW, t33_awFX, t34_awFY, t35_awFZ, t36_awG0, t37_awG1, t38_awG2, t39_awG3, t40_awG4, t41_awG5, t42_awG6, t43_awG7, t44_awG8, t45_awG9, t46_awGa, t47_awGb, t48_awGc, t49_awGd, t50_awGe, t51_awGf, t52_awGg)
+ Composite.Aeson.Formats.Provided: tuple53JsonFormat :: forall e_awMj t1_awIR t2_awIS t3_awIT t4_awIU t5_awIV t6_awIW t7_awIX t8_awIY t9_awIZ t10_awJ0 t11_awJ1 t12_awJ2 t13_awJ3 t14_awJ4 t15_awJ5 t16_awJ6 t17_awJ7 t18_awJ8 t19_awJ9 t20_awJa t21_awJb t22_awJc t23_awJd t24_awJe t25_awJf t26_awJg t27_awJh t28_awJi t29_awJj t30_awJk t31_awJl t32_awJm t33_awJn t34_awJo t35_awJp t36_awJq t37_awJr t38_awJs t39_awJt t40_awJu t41_awJv t42_awJw t43_awJx t44_awJy t45_awJz t46_awJA t47_awJB t48_awJC t49_awJD t50_awJE t51_awJF t52_awJG t53_awJH. JsonFormat e_awMj t1_awIR -> JsonFormat e_awMj t2_awIS -> JsonFormat e_awMj t3_awIT -> JsonFormat e_awMj t4_awIU -> JsonFormat e_awMj t5_awIV -> JsonFormat e_awMj t6_awIW -> JsonFormat e_awMj t7_awIX -> JsonFormat e_awMj t8_awIY -> JsonFormat e_awMj t9_awIZ -> JsonFormat e_awMj t10_awJ0 -> JsonFormat e_awMj t11_awJ1 -> JsonFormat e_awMj t12_awJ2 -> JsonFormat e_awMj t13_awJ3 -> JsonFormat e_awMj t14_awJ4 -> JsonFormat e_awMj t15_awJ5 -> JsonFormat e_awMj t16_awJ6 -> JsonFormat e_awMj t17_awJ7 -> JsonFormat e_awMj t18_awJ8 -> JsonFormat e_awMj t19_awJ9 -> JsonFormat e_awMj t20_awJa -> JsonFormat e_awMj t21_awJb -> JsonFormat e_awMj t22_awJc -> JsonFormat e_awMj t23_awJd -> JsonFormat e_awMj t24_awJe -> JsonFormat e_awMj t25_awJf -> JsonFormat e_awMj t26_awJg -> JsonFormat e_awMj t27_awJh -> JsonFormat e_awMj t28_awJi -> JsonFormat e_awMj t29_awJj -> JsonFormat e_awMj t30_awJk -> JsonFormat e_awMj t31_awJl -> JsonFormat e_awMj t32_awJm -> JsonFormat e_awMj t33_awJn -> JsonFormat e_awMj t34_awJo -> JsonFormat e_awMj t35_awJp -> JsonFormat e_awMj t36_awJq -> JsonFormat e_awMj t37_awJr -> JsonFormat e_awMj t38_awJs -> JsonFormat e_awMj t39_awJt -> JsonFormat e_awMj t40_awJu -> JsonFormat e_awMj t41_awJv -> JsonFormat e_awMj t42_awJw -> JsonFormat e_awMj t43_awJx -> JsonFormat e_awMj t44_awJy -> JsonFormat e_awMj t45_awJz -> JsonFormat e_awMj t46_awJA -> JsonFormat e_awMj t47_awJB -> JsonFormat e_awMj t48_awJC -> JsonFormat e_awMj t49_awJD -> JsonFormat e_awMj t50_awJE -> JsonFormat e_awMj t51_awJF -> JsonFormat e_awMj t52_awJG -> JsonFormat e_awMj t53_awJH -> JsonFormat e_awMj (t1_awIR, t2_awIS, t3_awIT, t4_awIU, t5_awIV, t6_awIW, t7_awIX, t8_awIY, t9_awIZ, t10_awJ0, t11_awJ1, t12_awJ2, t13_awJ3, t14_awJ4, t15_awJ5, t16_awJ6, t17_awJ7, t18_awJ8, t19_awJ9, t20_awJa, t21_awJb, t22_awJc, t23_awJd, t24_awJe, t25_awJf, t26_awJg, t27_awJh, t28_awJi, t29_awJj, t30_awJk, t31_awJl, t32_awJm, t33_awJn, t34_awJo, t35_awJp, t36_awJq, t37_awJr, t38_awJs, t39_awJt, t40_awJu, t41_awJv, t42_awJw, t43_awJx, t44_awJy, t45_awJz, t46_awJA, t47_awJB, t48_awJC, t49_awJD, t50_awJE, t51_awJF, t52_awJG, t53_awJH)
+ Composite.Aeson.Formats.Provided: tuple54JsonFormat :: forall e_awPR t1_awMl t2_awMm t3_awMn t4_awMo t5_awMp t6_awMq t7_awMr t8_awMs t9_awMt t10_awMu t11_awMv t12_awMw t13_awMx t14_awMy t15_awMz t16_awMA t17_awMB t18_awMC t19_awMD t20_awME t21_awMF t22_awMG t23_awMH t24_awMI t25_awMJ t26_awMK t27_awML t28_awMM t29_awMN t30_awMO t31_awMP t32_awMQ t33_awMR t34_awMS t35_awMT t36_awMU t37_awMV t38_awMW t39_awMX t40_awMY t41_awMZ t42_awN0 t43_awN1 t44_awN2 t45_awN3 t46_awN4 t47_awN5 t48_awN6 t49_awN7 t50_awN8 t51_awN9 t52_awNa t53_awNb t54_awNc. JsonFormat e_awPR t1_awMl -> JsonFormat e_awPR t2_awMm -> JsonFormat e_awPR t3_awMn -> JsonFormat e_awPR t4_awMo -> JsonFormat e_awPR t5_awMp -> JsonFormat e_awPR t6_awMq -> JsonFormat e_awPR t7_awMr -> JsonFormat e_awPR t8_awMs -> JsonFormat e_awPR t9_awMt -> JsonFormat e_awPR t10_awMu -> JsonFormat e_awPR t11_awMv -> JsonFormat e_awPR t12_awMw -> JsonFormat e_awPR t13_awMx -> JsonFormat e_awPR t14_awMy -> JsonFormat e_awPR t15_awMz -> JsonFormat e_awPR t16_awMA -> JsonFormat e_awPR t17_awMB -> JsonFormat e_awPR t18_awMC -> JsonFormat e_awPR t19_awMD -> JsonFormat e_awPR t20_awME -> JsonFormat e_awPR t21_awMF -> JsonFormat e_awPR t22_awMG -> JsonFormat e_awPR t23_awMH -> JsonFormat e_awPR t24_awMI -> JsonFormat e_awPR t25_awMJ -> JsonFormat e_awPR t26_awMK -> JsonFormat e_awPR t27_awML -> JsonFormat e_awPR t28_awMM -> JsonFormat e_awPR t29_awMN -> JsonFormat e_awPR t30_awMO -> JsonFormat e_awPR t31_awMP -> JsonFormat e_awPR t32_awMQ -> JsonFormat e_awPR t33_awMR -> JsonFormat e_awPR t34_awMS -> JsonFormat e_awPR t35_awMT -> JsonFormat e_awPR t36_awMU -> JsonFormat e_awPR t37_awMV -> JsonFormat e_awPR t38_awMW -> JsonFormat e_awPR t39_awMX -> JsonFormat e_awPR t40_awMY -> JsonFormat e_awPR t41_awMZ -> JsonFormat e_awPR t42_awN0 -> JsonFormat e_awPR t43_awN1 -> JsonFormat e_awPR t44_awN2 -> JsonFormat e_awPR t45_awN3 -> JsonFormat e_awPR t46_awN4 -> JsonFormat e_awPR t47_awN5 -> JsonFormat e_awPR t48_awN6 -> JsonFormat e_awPR t49_awN7 -> JsonFormat e_awPR t50_awN8 -> JsonFormat e_awPR t51_awN9 -> JsonFormat e_awPR t52_awNa -> JsonFormat e_awPR t53_awNb -> JsonFormat e_awPR t54_awNc -> JsonFormat e_awPR (t1_awMl, t2_awMm, t3_awMn, t4_awMo, t5_awMp, t6_awMq, t7_awMr, t8_awMs, t9_awMt, t10_awMu, t11_awMv, t12_awMw, t13_awMx, t14_awMy, t15_awMz, t16_awMA, t17_awMB, t18_awMC, t19_awMD, t20_awME, t21_awMF, t22_awMG, t23_awMH, t24_awMI, t25_awMJ, t26_awMK, t27_awML, t28_awMM, t29_awMN, t30_awMO, t31_awMP, t32_awMQ, t33_awMR, t34_awMS, t35_awMT, t36_awMU, t37_awMV, t38_awMW, t39_awMX, t40_awMY, t41_awMZ, t42_awN0, t43_awN1, t44_awN2, t45_awN3, t46_awN4, t47_awN5, t48_awN6, t49_awN7, t50_awN8, t51_awN9, t52_awNa, t53_awNb, t54_awNc)
+ Composite.Aeson.Formats.Provided: tuple55JsonFormat :: forall e_awTt t1_awPT t2_awPU t3_awPV t4_awPW t5_awPX t6_awPY t7_awPZ t8_awQ0 t9_awQ1 t10_awQ2 t11_awQ3 t12_awQ4 t13_awQ5 t14_awQ6 t15_awQ7 t16_awQ8 t17_awQ9 t18_awQa t19_awQb t20_awQc t21_awQd t22_awQe t23_awQf t24_awQg t25_awQh t26_awQi t27_awQj t28_awQk t29_awQl t30_awQm t31_awQn t32_awQo t33_awQp t34_awQq t35_awQr t36_awQs t37_awQt t38_awQu t39_awQv t40_awQw t41_awQx t42_awQy t43_awQz t44_awQA t45_awQB t46_awQC t47_awQD t48_awQE t49_awQF t50_awQG t51_awQH t52_awQI t53_awQJ t54_awQK t55_awQL. JsonFormat e_awTt t1_awPT -> JsonFormat e_awTt t2_awPU -> JsonFormat e_awTt t3_awPV -> JsonFormat e_awTt t4_awPW -> JsonFormat e_awTt t5_awPX -> JsonFormat e_awTt t6_awPY -> JsonFormat e_awTt t7_awPZ -> JsonFormat e_awTt t8_awQ0 -> JsonFormat e_awTt t9_awQ1 -> JsonFormat e_awTt t10_awQ2 -> JsonFormat e_awTt t11_awQ3 -> JsonFormat e_awTt t12_awQ4 -> JsonFormat e_awTt t13_awQ5 -> JsonFormat e_awTt t14_awQ6 -> JsonFormat e_awTt t15_awQ7 -> JsonFormat e_awTt t16_awQ8 -> JsonFormat e_awTt t17_awQ9 -> JsonFormat e_awTt t18_awQa -> JsonFormat e_awTt t19_awQb -> JsonFormat e_awTt t20_awQc -> JsonFormat e_awTt t21_awQd -> JsonFormat e_awTt t22_awQe -> JsonFormat e_awTt t23_awQf -> JsonFormat e_awTt t24_awQg -> JsonFormat e_awTt t25_awQh -> JsonFormat e_awTt t26_awQi -> JsonFormat e_awTt t27_awQj -> JsonFormat e_awTt t28_awQk -> JsonFormat e_awTt t29_awQl -> JsonFormat e_awTt t30_awQm -> JsonFormat e_awTt t31_awQn -> JsonFormat e_awTt t32_awQo -> JsonFormat e_awTt t33_awQp -> JsonFormat e_awTt t34_awQq -> JsonFormat e_awTt t35_awQr -> JsonFormat e_awTt t36_awQs -> JsonFormat e_awTt t37_awQt -> JsonFormat e_awTt t38_awQu -> JsonFormat e_awTt t39_awQv -> JsonFormat e_awTt t40_awQw -> JsonFormat e_awTt t41_awQx -> JsonFormat e_awTt t42_awQy -> JsonFormat e_awTt t43_awQz -> JsonFormat e_awTt t44_awQA -> JsonFormat e_awTt t45_awQB -> JsonFormat e_awTt t46_awQC -> JsonFormat e_awTt t47_awQD -> JsonFormat e_awTt t48_awQE -> JsonFormat e_awTt t49_awQF -> JsonFormat e_awTt t50_awQG -> JsonFormat e_awTt t51_awQH -> JsonFormat e_awTt t52_awQI -> JsonFormat e_awTt t53_awQJ -> JsonFormat e_awTt t54_awQK -> JsonFormat e_awTt t55_awQL -> JsonFormat e_awTt (t1_awPT, t2_awPU, t3_awPV, t4_awPW, t5_awPX, t6_awPY, t7_awPZ, t8_awQ0, t9_awQ1, t10_awQ2, t11_awQ3, t12_awQ4, t13_awQ5, t14_awQ6, t15_awQ7, t16_awQ8, t17_awQ9, t18_awQa, t19_awQb, t20_awQc, t21_awQd, t22_awQe, t23_awQf, t24_awQg, t25_awQh, t26_awQi, t27_awQj, t28_awQk, t29_awQl, t30_awQm, t31_awQn, t32_awQo, t33_awQp, t34_awQq, t35_awQr, t36_awQs, t37_awQt, t38_awQu, t39_awQv, t40_awQw, t41_awQx, t42_awQy, t43_awQz, t44_awQA, t45_awQB, t46_awQC, t47_awQD, t48_awQE, t49_awQF, t50_awQG, t51_awQH, t52_awQI, t53_awQJ, t54_awQK, t55_awQL)
+ Composite.Aeson.Formats.Provided: tuple56JsonFormat :: forall e_awX9 t1_awTv t2_awTw t3_awTx t4_awTy t5_awTz t6_awTA t7_awTB t8_awTC t9_awTD t10_awTE t11_awTF t12_awTG t13_awTH t14_awTI t15_awTJ t16_awTK t17_awTL t18_awTM t19_awTN t20_awTO t21_awTP t22_awTQ t23_awTR t24_awTS t25_awTT t26_awTU t27_awTV t28_awTW t29_awTX t30_awTY t31_awTZ t32_awU0 t33_awU1 t34_awU2 t35_awU3 t36_awU4 t37_awU5 t38_awU6 t39_awU7 t40_awU8 t41_awU9 t42_awUa t43_awUb t44_awUc t45_awUd t46_awUe t47_awUf t48_awUg t49_awUh t50_awUi t51_awUj t52_awUk t53_awUl t54_awUm t55_awUn t56_awUo. JsonFormat e_awX9 t1_awTv -> JsonFormat e_awX9 t2_awTw -> JsonFormat e_awX9 t3_awTx -> JsonFormat e_awX9 t4_awTy -> JsonFormat e_awX9 t5_awTz -> JsonFormat e_awX9 t6_awTA -> JsonFormat e_awX9 t7_awTB -> JsonFormat e_awX9 t8_awTC -> JsonFormat e_awX9 t9_awTD -> JsonFormat e_awX9 t10_awTE -> JsonFormat e_awX9 t11_awTF -> JsonFormat e_awX9 t12_awTG -> JsonFormat e_awX9 t13_awTH -> JsonFormat e_awX9 t14_awTI -> JsonFormat e_awX9 t15_awTJ -> JsonFormat e_awX9 t16_awTK -> JsonFormat e_awX9 t17_awTL -> JsonFormat e_awX9 t18_awTM -> JsonFormat e_awX9 t19_awTN -> JsonFormat e_awX9 t20_awTO -> JsonFormat e_awX9 t21_awTP -> JsonFormat e_awX9 t22_awTQ -> JsonFormat e_awX9 t23_awTR -> JsonFormat e_awX9 t24_awTS -> JsonFormat e_awX9 t25_awTT -> JsonFormat e_awX9 t26_awTU -> JsonFormat e_awX9 t27_awTV -> JsonFormat e_awX9 t28_awTW -> JsonFormat e_awX9 t29_awTX -> JsonFormat e_awX9 t30_awTY -> JsonFormat e_awX9 t31_awTZ -> JsonFormat e_awX9 t32_awU0 -> JsonFormat e_awX9 t33_awU1 -> JsonFormat e_awX9 t34_awU2 -> JsonFormat e_awX9 t35_awU3 -> JsonFormat e_awX9 t36_awU4 -> JsonFormat e_awX9 t37_awU5 -> JsonFormat e_awX9 t38_awU6 -> JsonFormat e_awX9 t39_awU7 -> JsonFormat e_awX9 t40_awU8 -> JsonFormat e_awX9 t41_awU9 -> JsonFormat e_awX9 t42_awUa -> JsonFormat e_awX9 t43_awUb -> JsonFormat e_awX9 t44_awUc -> JsonFormat e_awX9 t45_awUd -> JsonFormat e_awX9 t46_awUe -> JsonFormat e_awX9 t47_awUf -> JsonFormat e_awX9 t48_awUg -> JsonFormat e_awX9 t49_awUh -> JsonFormat e_awX9 t50_awUi -> JsonFormat e_awX9 t51_awUj -> JsonFormat e_awX9 t52_awUk -> JsonFormat e_awX9 t53_awUl -> JsonFormat e_awX9 t54_awUm -> JsonFormat e_awX9 t55_awUn -> JsonFormat e_awX9 t56_awUo -> JsonFormat e_awX9 (t1_awTv, t2_awTw, t3_awTx, t4_awTy, t5_awTz, t6_awTA, t7_awTB, t8_awTC, t9_awTD, t10_awTE, t11_awTF, t12_awTG, t13_awTH, t14_awTI, t15_awTJ, t16_awTK, t17_awTL, t18_awTM, t19_awTN, t20_awTO, t21_awTP, t22_awTQ, t23_awTR, t24_awTS, t25_awTT, t26_awTU, t27_awTV, t28_awTW, t29_awTX, t30_awTY, t31_awTZ, t32_awU0, t33_awU1, t34_awU2, t35_awU3, t36_awU4, t37_awU5, t38_awU6, t39_awU7, t40_awU8, t41_awU9, t42_awUa, t43_awUb, t44_awUc, t45_awUd, t46_awUe, t47_awUf, t48_awUg, t49_awUh, t50_awUi, t51_awUj, t52_awUk, t53_awUl, t54_awUm, t55_awUn, t56_awUo)
+ Composite.Aeson.Formats.Provided: tuple57JsonFormat :: forall e_ax0T t1_awXb t2_awXc t3_awXd t4_awXe t5_awXf t6_awXg t7_awXh t8_awXi t9_awXj t10_awXk t11_awXl t12_awXm t13_awXn t14_awXo t15_awXp t16_awXq t17_awXr t18_awXs t19_awXt t20_awXu t21_awXv t22_awXw t23_awXx t24_awXy t25_awXz t26_awXA t27_awXB t28_awXC t29_awXD t30_awXE t31_awXF t32_awXG t33_awXH t34_awXI t35_awXJ t36_awXK t37_awXL t38_awXM t39_awXN t40_awXO t41_awXP t42_awXQ t43_awXR t44_awXS t45_awXT t46_awXU t47_awXV t48_awXW t49_awXX t50_awXY t51_awXZ t52_awY0 t53_awY1 t54_awY2 t55_awY3 t56_awY4 t57_awY5. JsonFormat e_ax0T t1_awXb -> JsonFormat e_ax0T t2_awXc -> JsonFormat e_ax0T t3_awXd -> JsonFormat e_ax0T t4_awXe -> JsonFormat e_ax0T t5_awXf -> JsonFormat e_ax0T t6_awXg -> JsonFormat e_ax0T t7_awXh -> JsonFormat e_ax0T t8_awXi -> JsonFormat e_ax0T t9_awXj -> JsonFormat e_ax0T t10_awXk -> JsonFormat e_ax0T t11_awXl -> JsonFormat e_ax0T t12_awXm -> JsonFormat e_ax0T t13_awXn -> JsonFormat e_ax0T t14_awXo -> JsonFormat e_ax0T t15_awXp -> JsonFormat e_ax0T t16_awXq -> JsonFormat e_ax0T t17_awXr -> JsonFormat e_ax0T t18_awXs -> JsonFormat e_ax0T t19_awXt -> JsonFormat e_ax0T t20_awXu -> JsonFormat e_ax0T t21_awXv -> JsonFormat e_ax0T t22_awXw -> JsonFormat e_ax0T t23_awXx -> JsonFormat e_ax0T t24_awXy -> JsonFormat e_ax0T t25_awXz -> JsonFormat e_ax0T t26_awXA -> JsonFormat e_ax0T t27_awXB -> JsonFormat e_ax0T t28_awXC -> JsonFormat e_ax0T t29_awXD -> JsonFormat e_ax0T t30_awXE -> JsonFormat e_ax0T t31_awXF -> JsonFormat e_ax0T t32_awXG -> JsonFormat e_ax0T t33_awXH -> JsonFormat e_ax0T t34_awXI -> JsonFormat e_ax0T t35_awXJ -> JsonFormat e_ax0T t36_awXK -> JsonFormat e_ax0T t37_awXL -> JsonFormat e_ax0T t38_awXM -> JsonFormat e_ax0T t39_awXN -> JsonFormat e_ax0T t40_awXO -> JsonFormat e_ax0T t41_awXP -> JsonFormat e_ax0T t42_awXQ -> JsonFormat e_ax0T t43_awXR -> JsonFormat e_ax0T t44_awXS -> JsonFormat e_ax0T t45_awXT -> JsonFormat e_ax0T t46_awXU -> JsonFormat e_ax0T t47_awXV -> JsonFormat e_ax0T t48_awXW -> JsonFormat e_ax0T t49_awXX -> JsonFormat e_ax0T t50_awXY -> JsonFormat e_ax0T t51_awXZ -> JsonFormat e_ax0T t52_awY0 -> JsonFormat e_ax0T t53_awY1 -> JsonFormat e_ax0T t54_awY2 -> JsonFormat e_ax0T t55_awY3 -> JsonFormat e_ax0T t56_awY4 -> JsonFormat e_ax0T t57_awY5 -> JsonFormat e_ax0T (t1_awXb, t2_awXc, t3_awXd, t4_awXe, t5_awXf, t6_awXg, t7_awXh, t8_awXi, t9_awXj, t10_awXk, t11_awXl, t12_awXm, t13_awXn, t14_awXo, t15_awXp, t16_awXq, t17_awXr, t18_awXs, t19_awXt, t20_awXu, t21_awXv, t22_awXw, t23_awXx, t24_awXy, t25_awXz, t26_awXA, t27_awXB, t28_awXC, t29_awXD, t30_awXE, t31_awXF, t32_awXG, t33_awXH, t34_awXI, t35_awXJ, t36_awXK, t37_awXL, t38_awXM, t39_awXN, t40_awXO, t41_awXP, t42_awXQ, t43_awXR, t44_awXS, t45_awXT, t46_awXU, t47_awXV, t48_awXW, t49_awXX, t50_awXY, t51_awXZ, t52_awY0, t53_awY1, t54_awY2, t55_awY3, t56_awY4, t57_awY5)
+ Composite.Aeson.Formats.Provided: tuple58JsonFormat :: forall e_ax4H t1_ax0V t2_ax0W t3_ax0X t4_ax0Y t5_ax0Z t6_ax10 t7_ax11 t8_ax12 t9_ax13 t10_ax14 t11_ax15 t12_ax16 t13_ax17 t14_ax18 t15_ax19 t16_ax1a t17_ax1b t18_ax1c t19_ax1d t20_ax1e t21_ax1f t22_ax1g t23_ax1h t24_ax1i t25_ax1j t26_ax1k t27_ax1l t28_ax1m t29_ax1n t30_ax1o t31_ax1p t32_ax1q t33_ax1r t34_ax1s t35_ax1t t36_ax1u t37_ax1v t38_ax1w t39_ax1x t40_ax1y t41_ax1z t42_ax1A t43_ax1B t44_ax1C t45_ax1D t46_ax1E t47_ax1F t48_ax1G t49_ax1H t50_ax1I t51_ax1J t52_ax1K t53_ax1L t54_ax1M t55_ax1N t56_ax1O t57_ax1P t58_ax1Q. JsonFormat e_ax4H t1_ax0V -> JsonFormat e_ax4H t2_ax0W -> JsonFormat e_ax4H t3_ax0X -> JsonFormat e_ax4H t4_ax0Y -> JsonFormat e_ax4H t5_ax0Z -> JsonFormat e_ax4H t6_ax10 -> JsonFormat e_ax4H t7_ax11 -> JsonFormat e_ax4H t8_ax12 -> JsonFormat e_ax4H t9_ax13 -> JsonFormat e_ax4H t10_ax14 -> JsonFormat e_ax4H t11_ax15 -> JsonFormat e_ax4H t12_ax16 -> JsonFormat e_ax4H t13_ax17 -> JsonFormat e_ax4H t14_ax18 -> JsonFormat e_ax4H t15_ax19 -> JsonFormat e_ax4H t16_ax1a -> JsonFormat e_ax4H t17_ax1b -> JsonFormat e_ax4H t18_ax1c -> JsonFormat e_ax4H t19_ax1d -> JsonFormat e_ax4H t20_ax1e -> JsonFormat e_ax4H t21_ax1f -> JsonFormat e_ax4H t22_ax1g -> JsonFormat e_ax4H t23_ax1h -> JsonFormat e_ax4H t24_ax1i -> JsonFormat e_ax4H t25_ax1j -> JsonFormat e_ax4H t26_ax1k -> JsonFormat e_ax4H t27_ax1l -> JsonFormat e_ax4H t28_ax1m -> JsonFormat e_ax4H t29_ax1n -> JsonFormat e_ax4H t30_ax1o -> JsonFormat e_ax4H t31_ax1p -> JsonFormat e_ax4H t32_ax1q -> JsonFormat e_ax4H t33_ax1r -> JsonFormat e_ax4H t34_ax1s -> JsonFormat e_ax4H t35_ax1t -> JsonFormat e_ax4H t36_ax1u -> JsonFormat e_ax4H t37_ax1v -> JsonFormat e_ax4H t38_ax1w -> JsonFormat e_ax4H t39_ax1x -> JsonFormat e_ax4H t40_ax1y -> JsonFormat e_ax4H t41_ax1z -> JsonFormat e_ax4H t42_ax1A -> JsonFormat e_ax4H t43_ax1B -> JsonFormat e_ax4H t44_ax1C -> JsonFormat e_ax4H t45_ax1D -> JsonFormat e_ax4H t46_ax1E -> JsonFormat e_ax4H t47_ax1F -> JsonFormat e_ax4H t48_ax1G -> JsonFormat e_ax4H t49_ax1H -> JsonFormat e_ax4H t50_ax1I -> JsonFormat e_ax4H t51_ax1J -> JsonFormat e_ax4H t52_ax1K -> JsonFormat e_ax4H t53_ax1L -> JsonFormat e_ax4H t54_ax1M -> JsonFormat e_ax4H t55_ax1N -> JsonFormat e_ax4H t56_ax1O -> JsonFormat e_ax4H t57_ax1P -> JsonFormat e_ax4H t58_ax1Q -> JsonFormat e_ax4H (t1_ax0V, t2_ax0W, t3_ax0X, t4_ax0Y, t5_ax0Z, t6_ax10, t7_ax11, t8_ax12, t9_ax13, t10_ax14, t11_ax15, t12_ax16, t13_ax17, t14_ax18, t15_ax19, t16_ax1a, t17_ax1b, t18_ax1c, t19_ax1d, t20_ax1e, t21_ax1f, t22_ax1g, t23_ax1h, t24_ax1i, t25_ax1j, t26_ax1k, t27_ax1l, t28_ax1m, t29_ax1n, t30_ax1o, t31_ax1p, t32_ax1q, t33_ax1r, t34_ax1s, t35_ax1t, t36_ax1u, t37_ax1v, t38_ax1w, t39_ax1x, t40_ax1y, t41_ax1z, t42_ax1A, t43_ax1B, t44_ax1C, t45_ax1D, t46_ax1E, t47_ax1F, t48_ax1G, t49_ax1H, t50_ax1I, t51_ax1J, t52_ax1K, t53_ax1L, t54_ax1M, t55_ax1N, t56_ax1O, t57_ax1P, t58_ax1Q)
+ Composite.Aeson.Formats.Provided: tuple59JsonFormat :: forall e_ax8z t1_ax4J t2_ax4K t3_ax4L t4_ax4M t5_ax4N t6_ax4O t7_ax4P t8_ax4Q t9_ax4R t10_ax4S t11_ax4T t12_ax4U t13_ax4V t14_ax4W t15_ax4X t16_ax4Y t17_ax4Z t18_ax50 t19_ax51 t20_ax52 t21_ax53 t22_ax54 t23_ax55 t24_ax56 t25_ax57 t26_ax58 t27_ax59 t28_ax5a t29_ax5b t30_ax5c t31_ax5d t32_ax5e t33_ax5f t34_ax5g t35_ax5h t36_ax5i t37_ax5j t38_ax5k t39_ax5l t40_ax5m t41_ax5n t42_ax5o t43_ax5p t44_ax5q t45_ax5r t46_ax5s t47_ax5t t48_ax5u t49_ax5v t50_ax5w t51_ax5x t52_ax5y t53_ax5z t54_ax5A t55_ax5B t56_ax5C t57_ax5D t58_ax5E t59_ax5F. JsonFormat e_ax8z t1_ax4J -> JsonFormat e_ax8z t2_ax4K -> JsonFormat e_ax8z t3_ax4L -> JsonFormat e_ax8z t4_ax4M -> JsonFormat e_ax8z t5_ax4N -> JsonFormat e_ax8z t6_ax4O -> JsonFormat e_ax8z t7_ax4P -> JsonFormat e_ax8z t8_ax4Q -> JsonFormat e_ax8z t9_ax4R -> JsonFormat e_ax8z t10_ax4S -> JsonFormat e_ax8z t11_ax4T -> JsonFormat e_ax8z t12_ax4U -> JsonFormat e_ax8z t13_ax4V -> JsonFormat e_ax8z t14_ax4W -> JsonFormat e_ax8z t15_ax4X -> JsonFormat e_ax8z t16_ax4Y -> JsonFormat e_ax8z t17_ax4Z -> JsonFormat e_ax8z t18_ax50 -> JsonFormat e_ax8z t19_ax51 -> JsonFormat e_ax8z t20_ax52 -> JsonFormat e_ax8z t21_ax53 -> JsonFormat e_ax8z t22_ax54 -> JsonFormat e_ax8z t23_ax55 -> JsonFormat e_ax8z t24_ax56 -> JsonFormat e_ax8z t25_ax57 -> JsonFormat e_ax8z t26_ax58 -> JsonFormat e_ax8z t27_ax59 -> JsonFormat e_ax8z t28_ax5a -> JsonFormat e_ax8z t29_ax5b -> JsonFormat e_ax8z t30_ax5c -> JsonFormat e_ax8z t31_ax5d -> JsonFormat e_ax8z t32_ax5e -> JsonFormat e_ax8z t33_ax5f -> JsonFormat e_ax8z t34_ax5g -> JsonFormat e_ax8z t35_ax5h -> JsonFormat e_ax8z t36_ax5i -> JsonFormat e_ax8z t37_ax5j -> JsonFormat e_ax8z t38_ax5k -> JsonFormat e_ax8z t39_ax5l -> JsonFormat e_ax8z t40_ax5m -> JsonFormat e_ax8z t41_ax5n -> JsonFormat e_ax8z t42_ax5o -> JsonFormat e_ax8z t43_ax5p -> JsonFormat e_ax8z t44_ax5q -> JsonFormat e_ax8z t45_ax5r -> JsonFormat e_ax8z t46_ax5s -> JsonFormat e_ax8z t47_ax5t -> JsonFormat e_ax8z t48_ax5u -> JsonFormat e_ax8z t49_ax5v -> JsonFormat e_ax8z t50_ax5w -> JsonFormat e_ax8z t51_ax5x -> JsonFormat e_ax8z t52_ax5y -> JsonFormat e_ax8z t53_ax5z -> JsonFormat e_ax8z t54_ax5A -> JsonFormat e_ax8z t55_ax5B -> JsonFormat e_ax8z t56_ax5C -> JsonFormat e_ax8z t57_ax5D -> JsonFormat e_ax8z t58_ax5E -> JsonFormat e_ax8z t59_ax5F -> JsonFormat e_ax8z (t1_ax4J, t2_ax4K, t3_ax4L, t4_ax4M, t5_ax4N, t6_ax4O, t7_ax4P, t8_ax4Q, t9_ax4R, t10_ax4S, t11_ax4T, t12_ax4U, t13_ax4V, t14_ax4W, t15_ax4X, t16_ax4Y, t17_ax4Z, t18_ax50, t19_ax51, t20_ax52, t21_ax53, t22_ax54, t23_ax55, t24_ax56, t25_ax57, t26_ax58, t27_ax59, t28_ax5a, t29_ax5b, t30_ax5c, t31_ax5d, t32_ax5e, t33_ax5f, t34_ax5g, t35_ax5h, t36_ax5i, t37_ax5j, t38_ax5k, t39_ax5l, t40_ax5m, t41_ax5n, t42_ax5o, t43_ax5p, t44_ax5q, t45_ax5r, t46_ax5s, t47_ax5t, t48_ax5u, t49_ax5v, t50_ax5w, t51_ax5x, t52_ax5y, t53_ax5z, t54_ax5A, t55_ax5B, t56_ax5C, t57_ax5D, t58_ax5E, t59_ax5F)
+ Composite.Aeson.Formats.Provided: tuple5JsonFormat :: forall e_avfR t1_avfv t2_avfw t3_avfx t4_avfy t5_avfz. JsonFormat e_avfR t1_avfv -> JsonFormat e_avfR t2_avfw -> JsonFormat e_avfR t3_avfx -> JsonFormat e_avfR t4_avfy -> JsonFormat e_avfR t5_avfz -> JsonFormat e_avfR (t1_avfv, t2_avfw, t3_avfx, t4_avfy, t5_avfz)
+ Composite.Aeson.Formats.Provided: tuple6JsonFormat :: forall e_avgj t1_avfT t2_avfU t3_avfV t4_avfW t5_avfX t6_avfY. JsonFormat e_avgj t1_avfT -> JsonFormat e_avgj t2_avfU -> JsonFormat e_avgj t3_avfV -> JsonFormat e_avgj t4_avfW -> JsonFormat e_avgj t5_avfX -> JsonFormat e_avgj t6_avfY -> JsonFormat e_avgj (t1_avfT, t2_avfU, t3_avfV, t4_avfW, t5_avfX, t6_avfY)
+ Composite.Aeson.Formats.Provided: tuple7JsonFormat :: forall e_avgP t1_avgl t2_avgm t3_avgn t4_avgo t5_avgp t6_avgq t7_avgr. JsonFormat e_avgP t1_avgl -> JsonFormat e_avgP t2_avgm -> JsonFormat e_avgP t3_avgn -> JsonFormat e_avgP t4_avgo -> JsonFormat e_avgP t5_avgp -> JsonFormat e_avgP t6_avgq -> JsonFormat e_avgP t7_avgr -> JsonFormat e_avgP (t1_avgl, t2_avgm, t3_avgn, t4_avgo, t5_avgp, t6_avgq, t7_avgr)
+ Composite.Aeson.Formats.Provided: tuple8JsonFormat :: forall e_avhp t1_avgR t2_avgS t3_avgT t4_avgU t5_avgV t6_avgW t7_avgX t8_avgY. JsonFormat e_avhp t1_avgR -> JsonFormat e_avhp t2_avgS -> JsonFormat e_avhp t3_avgT -> JsonFormat e_avhp t4_avgU -> JsonFormat e_avhp t5_avgV -> JsonFormat e_avhp t6_avgW -> JsonFormat e_avhp t7_avgX -> JsonFormat e_avhp t8_avgY -> JsonFormat e_avhp (t1_avgR, t2_avgS, t3_avgT, t4_avgU, t5_avgV, t6_avgW, t7_avgX, t8_avgY)
+ Composite.Aeson.Formats.Provided: tuple9JsonFormat :: forall e_avi3 t1_avhr t2_avhs t3_avht t4_avhu t5_avhv t6_avhw t7_avhx t8_avhy t9_avhz. JsonFormat e_avi3 t1_avhr -> JsonFormat e_avi3 t2_avhs -> JsonFormat e_avi3 t3_avht -> JsonFormat e_avi3 t4_avhu -> JsonFormat e_avi3 t5_avhv -> JsonFormat e_avi3 t6_avhw -> JsonFormat e_avi3 t7_avhx -> JsonFormat e_avi3 t8_avhy -> JsonFormat e_avi3 t9_avhz -> JsonFormat e_avi3 (t1_avhr, t2_avhs, t3_avht, t4_avhu, t5_avhv, t6_avhw, t7_avhx, t8_avhy, t9_avhz)
+ Composite.Aeson.Formats.Provided: unitJsonFormat :: JsonFormat e ()
+ Composite.Aeson.Formats.Provided: vectorJsonFormat :: JsonFormat e a -> JsonFormat e (Vector a)
+ Composite.Aeson.Formats.Provided: versionJsonFormat :: JsonFormat e Version
+ Composite.Aeson.Record: FromField :: (Text -> Parse e a) -> FromField e a
+ Composite.Aeson.Record: JsonField :: (a -> Maybe Value) -> (Text -> Parse e a) -> JsonField e a
+ Composite.Aeson.Record: ToField :: (a -> Maybe Value) -> ToField a
+ Composite.Aeson.Record: [unFromField] :: FromField e a -> Text -> Parse e a
+ Composite.Aeson.Record: [unToField] :: ToField a -> a -> Maybe Value
+ Composite.Aeson.Record: data JsonField e a
+ Composite.Aeson.Record: field :: (Wrapped a', Unwrapped a' ~ a) => JsonFormat e a -> JsonField e a'
+ Composite.Aeson.Record: field' :: JsonFormat e a -> JsonField e a
+ Composite.Aeson.Record: instance (Composite.Base.NamedField r, Composite.Aeson.Formats.Default.DefaultJsonFormat (Control.Lens.Wrapped.Unwrapped r), Composite.Aeson.Record.DefaultJsonFormatRec rs) => Composite.Aeson.Record.DefaultJsonFormatRec (r : rs)
+ Composite.Aeson.Record: instance Data.Functor.Contravariant.Contravariant Composite.Aeson.Record.ToField
+ Composite.Aeson.Record: instance GHC.Base.Functor (Composite.Aeson.Record.FromField e)
+ Composite.Aeson.Record: newtype FromField e a
+ Composite.Aeson.Record: newtype ToField a
+ Composite.Aeson.Record: optionalField :: forall e a a'. (Wrapped a', Unwrapped a' ~ Maybe a) => JsonFormat e a -> JsonField e a'
+ Composite.Aeson.Record: optionalField' :: JsonFormat e a -> JsonField e (Maybe a)
+ Composite.Aeson.TH: makeRecJsonWrapper :: String -> Name -> Q [Dec]
+ Composite.Aeson.TH: makeRecJsonWrapperExplicit :: String -> Name -> Q Exp -> Q [Dec]
- Composite.Aeson.Record: recFromJson :: RecFromJson rs => Rec (FromJson e) rs -> Parse e (Rec Identity rs)
+ Composite.Aeson.Record: recFromJson :: RecFromJson rs => Rec (FromField e) rs -> Parse e (Rec Identity rs)
- Composite.Aeson.Record: recToJson :: RecToJsonObject rs => Rec ToJson rs -> Rec Identity rs -> Value
+ Composite.Aeson.Record: recToJson :: RecToJsonObject rs => Rec ToField rs -> Rec Identity rs -> Value
- Composite.Aeson.Record: recToJsonObject :: RecToJsonObject rs => Rec ToJson rs -> Rec Identity rs -> Object
+ Composite.Aeson.Record: recToJsonObject :: RecToJsonObject rs => Rec ToField rs -> Rec Identity rs -> Object
- Composite.Aeson.Record: type JsonFormatRec e rs = Rec (JsonFormat e) rs
+ Composite.Aeson.Record: type JsonFormatRec e rs = Rec (JsonField e) rs
Files
- composite-aeson.cabal +50/−3
- src/Composite/Aeson.hs +8/−2
- src/Composite/Aeson/Base.hs +3/−3
- src/Composite/Aeson/DateTimeFormatUtils.hs +29/−0
- src/Composite/Aeson/Default.hs +0/−105
- src/Composite/Aeson/Formats/DateTime.hs +102/−0
- src/Composite/Aeson/Formats/Default.hs +109/−0
- src/Composite/Aeson/Formats/Generic.hs +208/−0
- src/Composite/Aeson/Formats/InternalTH.hs +96/−0
- src/Composite/Aeson/Formats/Provided.hs +175/−0
- src/Composite/Aeson/Record.hs +60/−21
- src/Composite/Aeson/TH.hs +111/−0
- test/Main.hs +10/−0
- test/RecordSpec.hs +45/−0
- test/TupleSpec.hs +17/−0
composite-aeson.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: composite-aeson-version: 0.1.1.0+version: 0.2.0.0 synopsis: JSON for Vinyl/Frames records description: Integration between Aeson and Vinyl/Frames records allowing records to be easily converted to JSON using automatic derivation, explicit formats, or a mix of both. category: Records@@ -18,10 +18,11 @@ library hs-source-dirs: src- default-extensions: DataKinds FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses NoImplicitPrelude OverloadedStrings PolyKinds ScopedTypeVariables StandaloneDeriving StrictData TemplateHaskell TupleSections TypeFamilies TypeOperators ViewPatterns+ default-extensions: DataKinds FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses MultiWayIf NoImplicitPrelude OverloadedStrings PatternSynonyms PolyKinds QuasiQuotes RankNTypes ScopedTypeVariables StandaloneDeriving StrictData TemplateHaskell TupleSections TypeFamilies TypeOperators ViewPatterns ghc-options: -Wall -O2 build-depends: base >= 4.7 && < 5+ , Frames , aeson , aeson-better-errors , basic-prelude@@ -32,13 +33,59 @@ , lens , profunctors , scientific+ , tagged+ , template-haskell , text+ , time , unordered-containers+ , vector , vinyl exposed-modules: Composite.Aeson Composite.Aeson.Base- Composite.Aeson.Default+ Composite.Aeson.DateTimeFormatUtils Composite.Aeson.Enum+ Composite.Aeson.Formats.DateTime+ Composite.Aeson.Formats.Default+ Composite.Aeson.Formats.Generic+ Composite.Aeson.Formats.InternalTH+ Composite.Aeson.Formats.Provided Composite.Aeson.Record+ Composite.Aeson.TH+ default-language: Haskell2010++test-suite composite-aeson-test+ type: exitcode-stdio-1.0+ main-is: Main.hs+ hs-source-dirs:+ test+ default-extensions: DataKinds FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses MultiWayIf NoImplicitPrelude OverloadedStrings PatternSynonyms PolyKinds QuasiQuotes RankNTypes ScopedTypeVariables StandaloneDeriving StrictData TemplateHaskell TupleSections TypeFamilies TypeOperators ViewPatterns+ ghc-options: -Wall -O2 -threaded -rtsopts -with-rtsopts=-N -fno-warn-orphans+ build-depends:+ base >= 4.7 && < 5+ , Frames+ , aeson+ , aeson-better-errors+ , basic-prelude+ , composite-base+ , containers+ , contravariant+ , generic-deriving+ , lens+ , profunctors+ , scientific+ , tagged+ , template-haskell+ , text+ , time+ , unordered-containers+ , vector+ , vinyl+ , QuickCheck+ , aeson-qq+ , composite-aeson+ , hspec+ other-modules:+ RecordSpec+ TupleSpec default-language: Haskell2010
src/Composite/Aeson.hs view
@@ -1,11 +1,17 @@ module Composite.Aeson ( module Composite.Aeson.Base- , module Composite.Aeson.Default , module Composite.Aeson.Enum+ , module Composite.Aeson.Formats.DateTime+ , module Composite.Aeson.Formats.Default+ , module Composite.Aeson.Formats.Generic+ , module Composite.Aeson.Formats.Provided , module Composite.Aeson.Record ) where import Composite.Aeson.Base-import Composite.Aeson.Default import Composite.Aeson.Enum+import Composite.Aeson.Formats.DateTime+import Composite.Aeson.Formats.Default+import Composite.Aeson.Formats.Generic+import Composite.Aeson.Formats.Provided import Composite.Aeson.Record
src/Composite/Aeson/Base.hs view
@@ -1,7 +1,7 @@ module Composite.Aeson.Base ( ToJson(..), FromJson(..), JsonProfunctor(..), _JsonProfunctor, JsonFormat(..) , toJsonWithFormat, fromJsonWithFormat, parseJsonWithFormat, parseJsonWithFormat'- , dimapJsonFormat, jsonFormatWithIso, wrappedFormat+ , dimapJsonFormat, jsonFormatWithIso, wrappedJsonFormat ) where import BasicPrelude@@ -89,5 +89,5 @@ jsonFormatWithIso i = withIso i dimapJsonFormat -- |Given a format for the value type inside some wrapper type @a@ which instances 'Wrapped', produce a format which works on the wrapper type.-wrappedFormat :: Wrapped a => JsonFormat e (Unwrapped a) -> JsonFormat e a-wrappedFormat = jsonFormatWithIso _Wrapped'+wrappedJsonFormat :: Wrapped a => JsonFormat e (Unwrapped a) -> JsonFormat e a+wrappedJsonFormat = jsonFormatWithIso _Wrapped'
+ src/Composite/Aeson/DateTimeFormatUtils.hs view
@@ -0,0 +1,29 @@+module Composite.Aeson.DateTimeFormatUtils+ ( fixupTzIn, fixupTzOut, fixupMs+ ) where++import BasicPrelude+import Data.Char (isDigit)+import Data.Function (fix)++-- |Given a string, remove a trailing @Z@ (which is ISO8601 acceptable) and replace it with @+00:00@ (which is @ParseTime@ acceptable)+fixupTzIn :: String -> String+fixupTzIn s = maybe s ((++ "+00:00") . reverse) $ stripPrefix "Z" (reverse s)++-- |Given a string, remove a trailing @+00:00@ (which @FormatTime@) and replace it with @Z@ (which is ISO8601 standard)+fixupTzOut :: String -> String+fixupTzOut s = maybe s ((++ "Z") . reverse) $ stripPrefix "00:00+" (reverse s)++-- |Given a ISO8601-ish string generated by @FormatTime@ with @%Q@, generating between no decimal and 12 digits of decimal, normalize it to exactly+-- three digits.+--+-- E.g. from @2017-03-30T13:00:00Z@ generate @2017-03-30T13:00:00.000Z@, and from @2017-03-30T13:00:00.123456789Z@ generate @2017-03-30T12:00:00.123Z@+fixupMs :: String -> String+fixupMs (':':s10:s1:tzChar:rest) | tzChar == 'Z' || tzChar == '+' || tzChar == '-' =+ ':':s10:s1:'.':'0':'0':'0':tzChar:rest+fixupMs (':':s10:s1:'.':digitsAndRest) =+ let (digits, rest) = span isDigit digitsAndRest+ newDigits = take 3 (digits ++ fix ('0':))+ in ':':s10:s1:'.':(newDigits ++ rest)+fixupMs (c:cs) = c : fixupMs cs+fixupMs [] = []
− src/Composite/Aeson/Default.hs
@@ -1,105 +0,0 @@-module Composite.Aeson.Default where--import BasicPrelude-import Composite.Aeson.Base (JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor))-import Data.Aeson (FromJSON, ToJSON(toJSON))-import qualified Data.Aeson as Aeson-import qualified Data.Aeson.BetterErrors as ABE-import Data.Int (Int8, Int16)-import Data.Scientific (Scientific)-import qualified Data.Scientific as Scientific-import Data.Word (Word8, Word16)---- |Class for associating a default JSON format with a type.------ DO NOT use this as the primary interface. It should only be used for defaulting in contexts where an explicit choice can also be used.-class DefaultJsonFormat a where- -- |Produce the default 'JsonFormat' for type @a@, which must not produce any custom errors.- defaultJsonFormat :: JsonFormat e a--instance DefaultJsonFormat Bool where defaultJsonFormat = boolJsonFormat-instance DefaultJsonFormat Char where defaultJsonFormat = charJsonFormat-instance DefaultJsonFormat Scientific where defaultJsonFormat = scientificJsonFormat-instance DefaultJsonFormat Float where defaultJsonFormat = realFloatJsonFormat-instance DefaultJsonFormat Double where defaultJsonFormat = realFloatJsonFormat-instance DefaultJsonFormat Int where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Int8 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Int16 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Int32 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Int64 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Word8 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Word16 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Word32 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat Word64 where defaultJsonFormat = integralJsonFormat-instance DefaultJsonFormat String where defaultJsonFormat = stringJsonFormat-instance DefaultJsonFormat Text where defaultJsonFormat = textJsonFormat-instance DefaultJsonFormat Aeson.Value where defaultJsonFormat = aesonValueJsonFormat-instance DefaultJsonFormat Aeson.Object where defaultJsonFormat = aesonObjectJsonFormat-instance DefaultJsonFormat Aeson.Array where defaultJsonFormat = aesonArrayJsonFormat---- |Produce an explicit 'JsonFormat' by using the implicit Aeson 'FromJSON' and 'ToJSON' instances.------ If an @aeson-better-errors@ parser is available for @a@, it's probably better to use 'abeJsonFormat' to get the enhanced error reporting.-aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a-aesonJsonFormat = JsonFormat $ JsonProfunctor toJSON ABE.fromAesonParser---- |Produce an explicit 'JsonFormat' by using the implicit Aeson 'ToJSON' instance and an explicit @aeson-better-errors@ 'ABE.Parse'.-abeJsonFormat :: ToJSON a => ABE.Parse e a -> JsonFormat e a-abeJsonFormat p = JsonFormat $ JsonProfunctor toJSON p---- |'JsonFormat' for 'Bool', mapping to a JSON boolean.-boolJsonFormat :: JsonFormat e Bool-boolJsonFormat = abeJsonFormat ABE.asBool---- |'JsonFormat' for 'Char', mapping to a JSON string.-charJsonFormat :: JsonFormat e Char-charJsonFormat = aesonJsonFormat---- |'JsonFormat' for 'Scientific', mapping to a JSON number.------ __Warning:__ some JSON parsing libraries do not accept the scientific number notation even though it's part of the JSON standard, and this format--- uses 'Data.ByteString.Builder.Scientific.scientificBuilder' transitively which encodes very small (< 0.1) and large (> 9,999,999.0) fractional numbers--- using scientific notation.-scientificJsonFormat :: JsonFormat e Scientific-scientificJsonFormat = abeJsonFormat ABE.asScientific---- |Convert some 'RealFloat' value to 'Aeson.Value'. Copied from Aeson internals which do not export it.-realFloatToJson :: RealFloat a => a -> Aeson.Value-realFloatToJson d- | isNaN d || isInfinite d = Aeson.Null- | otherwise = Aeson.Number $ Scientific.fromFloatDigits d-{-# INLINE realFloatToJson #-}---- |Polymorphic JSON format for any type which instances 'RealFloat'. See warning in documentation for 'scientificJsonFormat' about scientific notation.-realFloatJsonFormat :: RealFloat a => JsonFormat e a-realFloatJsonFormat = JsonFormat $ JsonProfunctor realFloatToJson ABE.asRealFloat---- |Polymorphic JSON format for any type which instances 'Integral'.-integralJsonFormat :: Integral a => JsonFormat e a-integralJsonFormat = JsonFormat $ JsonProfunctor (Aeson.Number . fromIntegral) ABE.asIntegral---- |JSON format for 'String'.-stringJsonFormat :: JsonFormat e String-stringJsonFormat = abeJsonFormat ABE.asString---- |JSON format for 'Text'.-textJsonFormat :: JsonFormat e Text-textJsonFormat = abeJsonFormat ABE.asText---- |JSON format for '()' which maps to JSON as @null@.-nullJsonFormat :: JsonFormat e ()-nullJsonFormat = abeJsonFormat ABE.asNull---- |JSON format which does no parsing or encoding.-aesonValueJsonFormat :: JsonFormat e Aeson.Value-aesonValueJsonFormat = abeJsonFormat ABE.asValue---- |JSON format for 'Aeson.Object' which maps to any object in JSON.-aesonObjectJsonFormat :: JsonFormat e Aeson.Object-aesonObjectJsonFormat = abeJsonFormat ABE.asObject---- |JSON format for 'Aeson.Array' which maps to any array in JSON.-aesonArrayJsonFormat :: JsonFormat e Aeson.Array-aesonArrayJsonFormat = abeJsonFormat ABE.asArray---- FIXME all the rest!
+ src/Composite/Aeson/Formats/DateTime.hs view
@@ -0,0 +1,102 @@+module Composite.Aeson.Formats.DateTime+ ( DateTimeFormat(..), regularDateTimeFormat+ , dateTimeJsonFormat+ , iso8601DateJsonFormat, iso8601DateTimeJsonFormat, iso8601TimeJsonFormat+ ) where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor))+import Composite.Aeson.DateTimeFormatUtils (fixupTzIn, fixupTzOut, fixupMs)+import Composite.Aeson.Formats.Provided (stringJsonFormat)+import Data.List.NonEmpty (NonEmpty((:|)))+import qualified Data.List.NonEmpty as NEL+import Data.Time.Calendar (Day)+import Data.Time.Clock (UTCTime)+import Data.Time.Format (FormatTime, ParseTime, TimeLocale, defaultTimeLocale, formatTime, parseTimeM)+import Data.Time.LocalTime (TimeOfDay)++-- |Structure carrying the date/time format string along with an example for error messaging and functions which optionally permute the input or output+-- before using the format.+data DateTimeFormat = DateTimeFormat+ { dateTimeFormat :: String+ , dateTimeFormatExample :: String+ , dateTimeFormatPreParse :: String -> String+ , dateTimeFormatPostFormat :: String -> String+ }++-- |Construct a 'DateTimeFormat' with no pre- or post- processing.+regularDateTimeFormat :: String -> String -> DateTimeFormat+regularDateTimeFormat format example = DateTimeFormat format example id id++-- |'JsonFormat' for any type which 'ParseTime' and 'FormatTime' are defined for which maps to JSON via the first format given and maps from JSON via+-- any format given.+dateTimeJsonFormat :: (ParseTime t, FormatTime t) => TimeLocale -> NonEmpty DateTimeFormat -> JsonFormat e t+dateTimeJsonFormat locale formats@(outFormat :| otherInFormats) = JsonFormat (JsonProfunctor dayOut dayIn)+ where+ formatsList = NEL.toList formats+ JsonFormat (JsonProfunctor stringOut stringIn) = stringJsonFormat+ dayOut = stringOut . dateTimeFormatPostFormat outFormat . formatTime locale (dateTimeFormat outFormat)+ dayIn = do+ s <- stringIn+ let attempt format = successOrFail Left Right $ parseTimeM True locale (dateTimeFormat format) (dateTimeFormatPreParse format s)+ attempts = map attempt formatsList+ case partitionEithers attempts of+ (_, a : _) ->+ pure a+ (es, _) | null otherInFormats ->+ fail $ "expected date/time string formatted as " <> dateTimeFormatExample outFormat <> ", but: " <> intercalate ", " es+ (es, _) ->+ fail $ "expected date/time string formatted as one of "+ <> intercalate ", " (map dateTimeFormatExample formatsList)+ <> ", but: " <> intercalate ", " es++-- |ISO8601 extended date format (@yyyy-mm-dd@).+iso8601DateJsonFormat :: JsonFormat e Day+iso8601DateJsonFormat =+ dateTimeJsonFormat defaultTimeLocale (fmt :| [])+ where+ fmt = regularDateTimeFormat "%F" "yyyy-mm-dd"++-- |ISO8601 extended date/time format (@yyyy-mm-ddThh:mm:ss.sssZ@ or @yyyy-mm-ttThh:mm:ssZ@)+iso8601DateTimeJsonFormat :: JsonFormat e UTCTime+iso8601DateTimeJsonFormat =+ dateTimeJsonFormat defaultTimeLocale (withMs :| [withoutMs])+ where+ withMs = DateTimeFormat "%FT%T.%Q%z" "yyyy-mm-ddThh:mm:ss.sssZ" fixupTzIn (fixupTzOut . fixupMs)+ withoutMs = DateTimeFormat "%FT%T%z" "yyyy-mm-ddThh:mm:ssZ" fixupTzIn fixupTzOut++-- |ISO8601 extended time format (@hh:mm:ss.sss@ or @hh:mm:ss@)+iso8601TimeJsonFormat :: JsonFormat e TimeOfDay+iso8601TimeJsonFormat =+ dateTimeJsonFormat defaultTimeLocale (withMs :| [withoutMs])+ where+ withMs = DateTimeFormat "%T.%Q%z" "hh:mm:ss.sss" id fixupMs+ withoutMs = DateTimeFormat "%T.%Q" "hh:mm:ss" id id+++-- |Monad for capturing uses of 'fail', because @Data.Time.Format@ has a poorly factored interface.+data SuccessOrFail a = Fail String | Success a++instance Functor SuccessOrFail where+ fmap f (Success a) = Success (f a)+ fmap _ (Fail f) = Fail f++instance Applicative SuccessOrFail where+ pure = Success+ Success f <*> Success a = Success (f a)+ Success _ <*> Fail f = Fail f+ Fail f <*> _ = Fail f++instance Monad SuccessOrFail where+ return = Success+ fail = Fail++ Success a >>= k = k a+ Fail f >>= _ = Fail f++-- |Evaluate some action of type @Monad m => m a@ and apply either the first or second function based on whether the computation completed or used @fail@.+successOrFail :: (String -> b) -> (a -> b) -> (forall m. Monad m => m a) -> b+successOrFail _ f (Success a) = f a+successOrFail f _ (Fail s) = f s++
+ src/Composite/Aeson/Formats/Default.hs view
@@ -0,0 +1,109 @@+module Composite.Aeson.Formats.Default+ ( DefaultJsonFormat(..)+ ) where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat, wrappedJsonFormat)+import Composite.Aeson.Formats.Generic (aesonJsonFormat)+import Composite.Aeson.Formats.InternalTH (makeTupleDefaults)+import Composite.Aeson.Formats.Provided -- sorry+import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)+import qualified Data.Aeson as Aeson+import Data.Functor.Compose (Compose)+import Data.Functor.Const (Const)+import Data.Functor.Identity (Identity)+import Data.Int (Int8, Int16)+import Data.List.NonEmpty (NonEmpty)+import qualified Data.Monoid as Monoid+import Data.Scientific (Scientific)+import qualified Data.Semigroup as Semigroup+import Data.Tagged (Tagged)+import Data.Vector (Vector)+import Data.Version (Version)+import Data.Word (Word8, Word16)+import Numeric.Natural (Natural)++-- |Class for associating a default JSON format with a type.+--+-- DO NOT use this as the primary interface. It should only be used for defaulting in contexts where an explicit choice can also be used.+--+-- Instances of this class are (hopefully) provided for each type with an obviously correct interpretation, for example 'Text', 'Int', etc. Conversely types+-- without an obviously correct interpretation and in particular those with many contradictory interpretations are not included, for example 'UTCTime',+-- forcing you to choose one.+--+-- For types with surprising JSON mapping characteristics, take time and consider whether it would be better to explicitly configure what format to use+-- instead of providing a default.+class DefaultJsonFormat a where+ -- |Produce the default 'JsonFormat' for type @a@, which must not produce any custom errors.+ defaultJsonFormat :: JsonFormat e a++ -- |Produce the default 'JsonFormat' for a list of @a@, which must not produce any custom errors.+ -- This function does not usually need to be implemented as it has a sensible default. It exists to avoid overlapping instances, e.g. for @Char@+ -- and @String ~ [Char]@. The default implementation uses 'listJsonFormat'.+ defaultJsonFormatList :: JsonFormat e [a]+ defaultJsonFormatList = listJsonFormat defaultJsonFormat++instance DefaultJsonFormat a => DefaultJsonFormat (Identity a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.Min a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.Max a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.First a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.Last a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.WrappedMonoid a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Semigroup.Option a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Monoid.Dual a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Monoid.Sum a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Monoid.Product a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Monoid.First a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Monoid.Last a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Const a b) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Tagged b a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Maybe a) where defaultJsonFormat = maybeJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (NonEmpty a) where defaultJsonFormat = nonEmptyListJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Seq a) where defaultJsonFormat = seqJsonFormat defaultJsonFormat+instance DefaultJsonFormat a => DefaultJsonFormat (Vector a) where defaultJsonFormat = vectorJsonFormat defaultJsonFormat++instance DefaultJsonFormat (f (g a)) => DefaultJsonFormat (Compose f g a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat++instance DefaultJsonFormat (f a) => DefaultJsonFormat (Monoid.Alt f a) where defaultJsonFormat = wrappedJsonFormat defaultJsonFormat++instance (FromJSONKey k, ToJSONKey k, Ord k, FromJSON a, ToJSON a) => DefaultJsonFormat (Map k a) where+ defaultJsonFormat = aesonJsonFormat -- because of the insanity that is FromJSONKey / ToJSONKey++instance (FromJSONKey k, ToJSONKey k, Eq k, Hashable k, FromJSON a, ToJSON a) => DefaultJsonFormat (HashMap k a) where+ defaultJsonFormat = aesonJsonFormat -- because of the insanity that is FromJSONKey / ToJSONKey++$makeTupleDefaults++instance DefaultJsonFormat Monoid.All where defaultJsonFormat = wrappedJsonFormat boolJsonFormat+instance DefaultJsonFormat Monoid.Any where defaultJsonFormat = wrappedJsonFormat boolJsonFormat++instance DefaultJsonFormat Aeson.Value where defaultJsonFormat = aesonValueJsonFormat+instance DefaultJsonFormat Bool where defaultJsonFormat = boolJsonFormat+instance DefaultJsonFormat IntSet where defaultJsonFormat = intSetJsonFormat+instance DefaultJsonFormat Int where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Int8 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Int16 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Int32 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Int64 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Integer where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Word where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Word8 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Word16 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Word32 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat Word64 where defaultJsonFormat = integralJsonFormat+instance DefaultJsonFormat LText where defaultJsonFormat = lazyTextJsonFormat+instance DefaultJsonFormat Natural where defaultJsonFormat = naturalJsonFormat+instance DefaultJsonFormat Ordering where defaultJsonFormat = orderingJsonFormat+instance DefaultJsonFormat Float where defaultJsonFormat = realFloatJsonFormat+instance DefaultJsonFormat Double where defaultJsonFormat = realFloatJsonFormat+instance DefaultJsonFormat Scientific where defaultJsonFormat = scientificJsonFormat+instance DefaultJsonFormat Text where defaultJsonFormat = textJsonFormat+instance DefaultJsonFormat () where defaultJsonFormat = unitJsonFormat+instance DefaultJsonFormat Version where defaultJsonFormat = versionJsonFormat++instance DefaultJsonFormat Char where+ defaultJsonFormat = charJsonFormat+ defaultJsonFormatList = stringJsonFormat++instance DefaultJsonFormat a => DefaultJsonFormat [a] where+ defaultJsonFormat = defaultJsonFormatList
+ src/Composite/Aeson/Formats/Generic.hs view
@@ -0,0 +1,208 @@+module Composite.Aeson.Formats.Generic+ ( abeJsonFormat, aesonJsonFormat, jsonArrayFormat, jsonObjectFormat+ , SumStyle(..), jsonSumFormat+ ) where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor), FromJson(FromJson))+import Control.Lens (_Wrapped, over, unsnoc)+import Data.Aeson (FromJSON, ToJSON, (.=), toJSON)+import qualified Data.Aeson as Aeson+import qualified Data.Aeson.BetterErrors as ABE+import qualified Data.HashMap.Strict as StrictHashMap+import Data.List.NonEmpty (NonEmpty((:|)))+import qualified Data.List.NonEmpty as NEL+import Data.Text (unpack)+import qualified Data.Vector as Vector++-- |Produce an explicit 'JsonFormat' by using the implicit Aeson 'ToJSON' instance and an explicit @aeson-better-errors@ 'ABE.Parse'.+abeJsonFormat :: ToJSON a => ABE.Parse e a -> JsonFormat e a+abeJsonFormat p = JsonFormat $ JsonProfunctor toJSON p++-- |Produce an explicit 'JsonFormat' by using the implicit Aeson 'FromJSON' and 'ToJSON' instances.+--+-- If an @aeson-better-errors@ parser is available for @a@, it's probably better to use 'abeJsonFormat' to get the enhanced error reporting.+aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a+aesonJsonFormat = JsonFormat $ JsonProfunctor toJSON ABE.fromAesonParser+++-- |'JsonFormat' for any type which can be converted to/from a list which maps to a JSON array.+jsonArrayFormat :: (t -> [a]) -> ([a] -> ABE.Parse e t) -> JsonFormat e a -> JsonFormat e t+jsonArrayFormat oToList iFromList =+ over _Wrapped $ \ (JsonProfunctor o i) ->+ JsonProfunctor (Aeson.Array . Vector.fromList . map o . oToList)+ (ABE.eachInArray i >>= iFromList)++-- |'JsonFormat' for any type which can be converted to/from a list of pairs which maps to a JSON object.+jsonObjectFormat :: (t -> [(Text, a)]) -> ([(Text, a)] -> ABE.Parse e t) -> JsonFormat e a -> JsonFormat e t+jsonObjectFormat oToList iFromList =+ over _Wrapped $ \ (JsonProfunctor o i) ->+ JsonProfunctor (Aeson.Object . StrictHashMap.fromList . map (second o) . oToList)+ (ABE.eachInObject i >>= iFromList)+++-- Describes how a sum format should map to JSON.+--+-- Summary of the styles:+--+-- * 'SumStyleFieldName' represents alternate sum branches as different mutually exclusive fields in an object, e.g. @{ "first": 123 }@.+-- * 'SumStyleTypeValue' represents alternate sum branches as different two-field objects, e.g. @{ "type": "first", "value": 123 }@.+-- * 'SumStyleMergeType' represents alternate sum branches by an intrinsic type field and only works with objects, e.g. @{ "type": "first", "a": 123 }@+--+-- Given:+--+-- @+-- data MySum+-- = SumFirst Int+-- | SumSecond String+--+-- mySumFormat :: 'SumStyle' -> 'JsonFormat' e MySum+-- mySumFormat style = jsonSumFormat style o i+-- where+-- o = \ case+-- SumFirst i -> ("first", 'toJsonWithFormat' 'intJsonFormat' i)+-- SumSecond s -> ("second", 'toJsonWithFormat' 'stringJsonFormat' s)+-- i = \ case+-- "first" -> SumFirst <$> 'parseJsonWithFormat' 'intJsonFormat'+-- "second" -> SumSecond <$> 'parseJsonWithFormat' 'stringJsonFormat'+-- @+--+-- For 'SumStyleFieldName', the object will always have a single field whose name is determined by which element of the sum it represents. For example:+--+-- @+-- toJsonWithFormat (mySumFormat SumStyleFieldName) (SumFirst 123)+-- @+--+-- will yield+--+-- @+-- { "first": 123 }+-- @+--+-- For @'SumStyleTypeValue' typeField valueField@, the object will have two fields @typeField@ and @valueField@, the former determining the format of the+-- latter. For example:+--+-- @+-- toJsonWithFormat (mySumFormat (SumStyleTypeValue "typ" "val")) (SumFirst 123)+-- @+--+-- will yield+--+-- @+-- { "typ": "first", "val": 123 }+-- @+--+-- For @'SumStyleMergeType' typeField@, its expected that every branch of the sum maps to an object in JSON, and the sum will add a new field @typeField@+-- to the object. It's fundamentally a bit dangerous as the assertion that each branch maps as an object is not enforced in the type system, so errors will+-- be produced at runtime. The previously given example can't be used as both branches (@Int@ and @String@) map to JSON values other than objects.+--+-- Given:+--+-- @+-- data FirstThing = FirstThing { a :: Int, b :: String }+-- firstThingJsonFormat = ... -- maps as { a: 123, b: "foo" }+--+-- data MySum+-- = SumFirst FirstThing+-- | ...+--+-- mySumFormat :: 'SumStyle' -> 'JsonFormat' e MySum+-- mySumFormat style = jsonSumFormat style o i+-- where+-- o = \ case+-- SumFirst ft -> ("first", 'toJsonWithFormat' 'firstThingJsonFormat' ft)+-- ...+-- i = \ case+-- "first" -> SumFirst <$> 'parseJsonWithFormat' 'firstThingJsonFormat'+-- ...+-- @+--+-- Then+--+-- @+-- toJsonWithFormat (SumStyleMergeType "typ") (SumFirst (FirstThing 123 "abc"))+-- @+--+-- will yield+--+-- @+-- { "typ": "first", "a": 123, "b": "abc" }+-- @+--+-- __Warning:__ (again) that 'SumStyleMergeType' will trigger __run time errors__ (ala @error@) when converting to JSON if any of the sum branches yields+-- something that isn't an object. It will also yield a run time error if that object already contains a conflicting field.+data SumStyle+ = SumStyleFieldName+ -- ^Map to a single-field object with the field name determined by the sum branch and the field value being the encoded value for that branch.+ | SumStyleTypeValue Text Text+ -- ^Map to a two-field object with fixed field names, the first being the type field and the second beind the value field.+ | SumStyleMergeType Text+ -- ^Given that each sum branch maps to a JSON object, add/parse an additional field to that object with the given name.++-- |Helper used by the various sum format functions which takes a list of input format pairs and makes an oxford comma list of them.+expectedFieldsForInputs :: NonEmpty (Text, x) -> String+expectedFieldsForInputs ((f, _) :| rest) =+ case unsnoc rest of+ Just (prefix, (fLast, _)) -> unpack $ f <> ", " <> intercalate ", " (map fst prefix) <> ", or " <> fLast+ Nothing -> unpack f++-- |'JsonFormat' which maps sum types to JSON according to 'SumStyle', given a pair of functions to decompose and recompose the sum type.+jsonSumFormat :: SumStyle -> (a -> (Text, Aeson.Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a+jsonSumFormat = \ case+ SumStyleFieldName -> jsonFieldNameSumFormat+ SumStyleTypeValue t v -> jsonTypeValueSumFormat t v+ SumStyleMergeType t -> jsonMergeTypeSumFormat t++-- |'JsonFormat' which maps sum types to JSON in the 'SumStyleFieldName' style.+jsonFieldNameSumFormat :: (a -> (Text, Aeson.Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a+jsonFieldNameSumFormat oA iAs =+ JsonFormat (JsonProfunctor o i)+ where+ expected = expectedFieldsForInputs iAs+ o a = let (t, v) = oA a in Aeson.object [t .= v]+ i = do+ fields <- ABE.withObject $ pure . StrictHashMap.keys+ case fields of+ [f] ->+ case lookup f (NEL.toList iAs) of+ Just (FromJson iA) -> ABE.key f iA+ Nothing -> fail $ "unknown field " <> unpack f <> ", expected one of " <> expected+ [] ->+ fail $ "expected an object with one field (" <> expected <> ") not an empty object"+ _ ->+ fail $ "expected an object with one field (" <> expected <> ") not many fields"+++-- |'JsonFormat' which maps sum types to JSON in the 'SumStyleTypeValue' style.+jsonTypeValueSumFormat :: Text -> Text -> (a -> (Text, Aeson.Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a+jsonTypeValueSumFormat typeField valueField oA iAs =+ JsonFormat (JsonProfunctor o i)+ where+ expected = expectedFieldsForInputs iAs+ o a = let (t, v) = oA a in Aeson.object [typeField .= t, valueField .= v]+ i = do+ t <- ABE.key typeField ABE.asText+ case lookup t (NEL.toList iAs) of+ Just (FromJson iA) -> ABE.key valueField iA+ Nothing -> fail $ "expected " <> unpack typeField <> " to be one of " <> expected++-- |'JsonFormat' which maps sum types to JSON in the 'SumStyleMergeType' style.+jsonMergeTypeSumFormat :: Text -> (a -> (Text, Aeson.Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a+jsonMergeTypeSumFormat typeField oA iAs =+ JsonFormat (JsonProfunctor o i)+ where+ expected = expectedFieldsForInputs iAs+ o a = case oA a of+ (t, Aeson.Object fields) | StrictHashMap.member typeField fields ->+ error $ "PRECONDITION VIOLATED: encoding a value with merge type sum style yielded "+ <> "(" <> unpack t <> ", " <> show (Aeson.Object fields) <> ") which already contains the field " <> unpack typeField+ (t, Aeson.Object fields) ->+ Aeson.Object (StrictHashMap.insert typeField (Aeson.String t) fields)+ (t, other) ->+ error $ "PRECONDITION VIOLATED: encoding a value with merge type sum style yielded "+ <> "(" <> unpack t <> ", " <> show other <> ") which isn't an object"+ i = do+ t <- ABE.key typeField ABE.asText+ case lookup t (NEL.toList iAs) of+ Just (FromJson iA) -> iA+ Nothing -> fail $ "expected " <> unpack typeField <> " to be one of " <> expected
+ src/Composite/Aeson/Formats/InternalTH.hs view
@@ -0,0 +1,96 @@+module Composite.Aeson.Formats.InternalTH+ ( makeTupleDefaults, makeTupleFormats+ ) where++import BasicPrelude hiding (lift)+import Composite.Aeson.Base (JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor))+import qualified Data.Aeson as Aeson+import qualified Data.Aeson.BetterErrors as ABE+import qualified Data.Vector as V+import Language.Haskell.TH+ ( Name, mkName, newName, tupleDataName+ , Q+ , cxt, clause, normalB+ , Dec, funD, instanceD, sigD, valD+ , Exp(AppE, ConE, VarE), appE, doE, lamE, listE, varE+ , conP, varP, wildP+ , bindS, noBindS+ , Type(AppT, ArrowT, ConT, ForallT, TupleT, VarT), appT, conT, varT+ , TyVarBndr(PlainTV)+ )+import Language.Haskell.TH.Syntax (lift)++djfClassName :: Name+djfClassName = mkName "Composite.Aeson.Formats.Default.DefaultJsonFormat"++djfFunName :: Name+djfFunName = mkName "Composite.Aeson.Formats.Default.defaultJsonFormat"++-- |Splice which inserts the @DefaultJsonFormat@ instances for tuples.+makeTupleDefaults :: Q [Dec]+makeTupleDefaults = traverse makeTupleDefault [2..59]+ where+ makeTupleDefault arity = do+ names <- traverse (newName . ("a" ++) . show) [1..arity]+ let constraints = map (\ n -> appT (conT djfClassName) (varT n)) names+ instanceHead = appT (conT djfClassName) (pure $ foldl' AppT (TupleT arity) (map VarT names))+ implName = mkName $ "Composite.Aeson.Formats.Provided.tuple" <> show arity <> "JsonFormat"+ instanceD (cxt constraints) instanceHead+ [ funD (mkName "defaultJsonFormat")+ [ clause+ []+ (normalB (pure $ foldl' (\ lhs _ -> AppE lhs (VarE djfFunName)) (VarE implName) [1..arity]))+ []+ ]+ ]++-- |Splice which inserts the @tupleNJsonFormat@ implementations for tuples.+makeTupleFormats :: Q [Dec]+makeTupleFormats = concat <$> traverse makeTupleFormat [2..59]+ where+ makeTupleFormat arity = do+ tyNames <- traverse (newName . ("t" ++) . show) [1..arity]+ oNames <- traverse (newName . ("o" ++) . show) [1..arity]+ iNames <- traverse (newName . ("i" ++) . show) [1..arity]+ oTupName <- newName "oTup"+ iTupName <- newName "iTup"+ valNames <- traverse (newName . ("v" ++) . show) [1..arity]+ tyErrName <- newName "e"++ let name = mkName $ "tuple" <> show arity <> "JsonFormat"+ tupleType = foldl' AppT (TupleT arity) (map VarT tyNames)+ funType =+ ForallT+ (PlainTV tyErrName : map PlainTV tyNames)+ []+ (foldr (\ l r -> AppT (AppT ArrowT (AppT (AppT (ConT ''JsonFormat) (VarT tyErrName)) l)) r)+ (AppT (AppT (ConT ''JsonFormat) (VarT tyErrName)) tupleType)+ (map VarT tyNames))+ oTupImpl =+ lamE+ [conP (tupleDataName arity) (map varP valNames)]+ [| (Aeson.Array . V.fromList) $(listE $ map (\ (varName, oName) -> appE (varE oName) (varE varName)) (zip valNames oNames)) |]+ iTupImpl =+ doE+ $ [ bindS wildP [|+ ABE.withArray Right >>= \ a ->+ if V.length a == $(lift arity)+ then pure ()+ else fail $(lift $ "expected an array of exactly " <> show arity <> " elements")+ |]+ ]+ ++ map ( \ (n, valName, iName) ->+ bindS (varP valName) [| ABE.nth $(lift (n :: Int)) $(varE iName) |] )+ (zip3 [0..] valNames iNames)+ ++ [ noBindS (appE (varE 'pure) (pure $ foldl' AppE (ConE (tupleDataName arity)) (map VarE valNames))) ]+ sequence+ [ sigD name (pure funType)+ , funD name+ [ clause+ (map (\ (oName, iName) -> conP 'JsonFormat [conP 'JsonProfunctor [varP oName, varP iName]]) (zip oNames iNames))+ (normalB [| JsonFormat (JsonProfunctor $(varE oTupName) $(varE iTupName)) |])+ [ valD (varP oTupName) (normalB oTupImpl) []+ , valD (varP iTupName) (normalB iTupImpl) []+ ]+ ]+ ]
+ src/Composite/Aeson/Formats/Provided.hs view
@@ -0,0 +1,175 @@+-- |Module which provides 'JsonFormat's for a variety of types from @base@ and other common packages.+module Composite.Aeson.Formats.Provided where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat(JsonFormat), JsonProfunctor(JsonProfunctor), _JsonProfunctor, dimapJsonFormat, toJsonWithFormat)+import Composite.Aeson.Formats.Generic (SumStyle, abeJsonFormat, aesonJsonFormat, jsonArrayFormat, jsonObjectFormat, jsonSumFormat)+import Composite.Aeson.Formats.InternalTH (makeTupleFormats)+import Control.Lens (_2, _Wrapped, over, view)+import qualified Data.Aeson as Aeson+import qualified Data.Aeson.BetterErrors as ABE+import Data.Fixed (HasResolution, Fixed)+import Data.Foldable (toList)+import qualified Data.HashMap.Lazy as LazyHashMap+import qualified Data.HashMap.Strict as StrictHashMap+import Data.List.NonEmpty (NonEmpty((:|)))+import qualified Data.List.NonEmpty as NEL+import qualified Data.Map.Lazy as LazyMap+import qualified Data.Map.Strict as StrictMap+import Data.Scientific (Scientific)+import qualified Data.Scientific as Scientific+import qualified Data.Sequence as Sequence+import qualified Data.Text.Lazy as LT+import qualified Data.Vector as V+import Data.Version (Version)+import Numeric.Natural (Natural)+++-- |JSON format for 'Aeson.Array' which maps to any array in JSON.+aesonArrayJsonFormat :: JsonFormat e Aeson.Array+aesonArrayJsonFormat = abeJsonFormat ABE.asArray++-- |JSON format for 'Aeson.Object' which maps to any object in JSON.+aesonObjectJsonFormat :: JsonFormat e Aeson.Object+aesonObjectJsonFormat = abeJsonFormat ABE.asObject++-- |JSON format which does no parsing or encoding.+aesonValueJsonFormat :: JsonFormat e Aeson.Value+aesonValueJsonFormat = abeJsonFormat ABE.asValue++-- |'JsonFormat' for 'Bool', mapping to a JSON boolean.+boolJsonFormat :: JsonFormat e Bool+boolJsonFormat = abeJsonFormat ABE.asBool++-- |'JsonFormat' for 'Char', mapping to a JSON string.+charJsonFormat :: JsonFormat e Char+charJsonFormat = aesonJsonFormat++-- |'JsonFormat' for 'Either' which maps to JSON as an object via 'jsonSumFormat'.+eitherJsonFormat :: SumStyle -> Text -> Text -> JsonFormat e a -> JsonFormat e b -> JsonFormat e (Either a b)+eitherJsonFormat style leftName rightName leftFormat rightFormat = jsonSumFormat style o is+ where+ o = \ case+ Left a -> (leftName, toJsonWithFormat leftFormat a)+ Right b -> (rightName, toJsonWithFormat rightFormat b)+ is =+ (leftName, Left <$> view (_Wrapped . _JsonProfunctor . _2) leftFormat) :| [(rightName, Right <$> view (_Wrapped . _JsonProfunctor . _2) rightFormat)]++-- |'JsonFormat' for 'Fixed' precision real numbers.+fixedJsonFormat :: HasResolution r => JsonFormat e (Fixed r)+fixedJsonFormat = aesonJsonFormat++-- |'JsonFormat' for 'StrictHashMap.HashMap' where the key type can be converted to and from a 'Text', mapping to a JSON object.+strictHashMapJsonFormat :: (Eq k, Hashable k) => (k -> Text) -> (Text -> ABE.Parse e k) -> JsonFormat e a -> JsonFormat e (StrictHashMap.HashMap k a)+strictHashMapJsonFormat kToText kFromText =+ jsonObjectFormat (map (first kToText) . StrictHashMap.toList)+ (map StrictHashMap.fromList . traverse (\ (k, a) -> (, a) <$> kFromText k))++-- |'JsonFormat' for 'LazyHashMap.HashMap' where the key type can be converted to and from a 'Text', mapping to a JSON object.+lazyHashMapJsonFormat :: (Eq k, Hashable k) => (k -> Text) -> (Text -> ABE.Parse e k) -> JsonFormat e a -> JsonFormat e (LazyHashMap.HashMap k a)+lazyHashMapJsonFormat kToText kFromText =+ jsonObjectFormat (map (first kToText) . LazyHashMap.toList)+ (map LazyHashMap.fromList . traverse (\ (k, a) -> (, a) <$> kFromText k))++-- |'JsonFormat' for 'IntSet' which maps to an array of numbers.+intSetJsonFormat :: JsonFormat e IntSet+intSetJsonFormat = aesonJsonFormat++-- |Polymorphic JSON format for any type which instances 'Integral'.+integralJsonFormat :: Integral a => JsonFormat e a+integralJsonFormat = JsonFormat $ JsonProfunctor (Aeson.Number . fromIntegral) ABE.asIntegral++-- |'JsonFormat' for 'Data.Text.Lazy.Text'.+lazyTextJsonFormat :: JsonFormat e LT.Text+lazyTextJsonFormat = dimapJsonFormat LT.toStrict LT.fromStrict textJsonFormat++-- |'JsonFormat' for '[]' which maps to a JSON array.+listJsonFormat :: JsonFormat e a -> JsonFormat e [a]+listJsonFormat = jsonArrayFormat id pure++-- |'JsonFormat' for 'StrictMap.Map' where the key type can be converted to and from a 'Text', mapping to a JSON object.+strictMapJsonFormat :: Ord k => (k -> Text) -> (Text -> ABE.Parse e k) -> JsonFormat e a -> JsonFormat e (StrictMap.Map k a)+strictMapJsonFormat kToText kFromText =+ jsonObjectFormat (map (first kToText) . StrictMap.toAscList)+ (map StrictMap.fromList . traverse (\ (k, a) -> (, a) <$> kFromText k))++-- |'JsonFormat' for 'LazyMap.Map' where the key type can be converted to and from a 'Text', mapping to a JSON object.+lazyMapJsonFormat :: Ord k => (k -> Text) -> (Text -> ABE.Parse e k) -> JsonFormat e a -> JsonFormat e (LazyMap.Map k a)+lazyMapJsonFormat kToText kFromText =+ jsonObjectFormat (map (first kToText) . LazyMap.toAscList)+ (map LazyMap.fromList . traverse (\ (k, a) -> (, a) <$> kFromText k))++-- |'JsonFormat' for 'Maybe' which maps @Nothing@ to @null@.+maybeJsonFormat :: JsonFormat e a -> JsonFormat e (Maybe a)+maybeJsonFormat =+ over _Wrapped $ \ (JsonProfunctor o i) ->+ JsonProfunctor (maybe Aeson.Null o) (ABE.perhaps i)++-- |'JsonFormat' for 'Natural' numbers.+naturalJsonFormat :: JsonFormat e Natural+naturalJsonFormat = aesonJsonFormat++-- |'JsonFormat' for 'NonEmpty' which maps to a JSON array.+nonEmptyListJsonFormat :: JsonFormat e a -> JsonFormat e (NonEmpty a)+nonEmptyListJsonFormat =+ jsonArrayFormat NEL.toList (maybe (fail "expected nonempty array") pure . NEL.nonEmpty)++-- |JSON format for '()' which maps to JSON as @null@.+nullJsonFormat :: JsonFormat e ()+nullJsonFormat = abeJsonFormat ABE.asNull++-- |JSON format for 'Ordering' which maps to the strings @LT@, @GT@, and @EQ@+orderingJsonFormat :: JsonFormat e Ordering+orderingJsonFormat = aesonJsonFormat++-- |Polymorphic JSON format for any type which instances 'RealFloat'. See warning in documentation for 'scientificJsonFormat' about scientific notation.+realFloatJsonFormat :: RealFloat a => JsonFormat e a+realFloatJsonFormat = JsonFormat $ JsonProfunctor realFloatToJson ABE.asRealFloat++-- |Convert some 'RealFloat' value to 'Aeson.Value'. Copied from Aeson internals which do not export it.+realFloatToJson :: RealFloat a => a -> Aeson.Value+realFloatToJson d+ | isNaN d || isInfinite d = Aeson.Null+ | otherwise = Aeson.Number $ Scientific.fromFloatDigits d+{-# INLINE realFloatToJson #-}++-- |'JsonFormat' for 'Scientific', mapping to a JSON number.+--+-- __Warning:__ some JSON parsing libraries do not accept the scientific number notation even though it's part of the JSON standard, and this format+-- uses 'Data.ByteString.Builder.Scientific.scientificBuilder' transitively which encodes very small (< 0.1) and large (> 9,999,999.0) fractional numbers+-- using scientific notation.+scientificJsonFormat :: JsonFormat e Scientific+scientificJsonFormat = abeJsonFormat ABE.asScientific++-- |'JsonFormat' for 'Seq'.+seqJsonFormat :: JsonFormat e a -> JsonFormat e (Seq a)+seqJsonFormat = jsonArrayFormat toList (pure . Sequence.fromList)++-- |'JsonFormat' for 'String'.+stringJsonFormat :: JsonFormat e String+stringJsonFormat = abeJsonFormat ABE.asString++-- |'JsonFormat' for arbitrary sum types which maps to JSON as an object with fields determined by the 'SumStyle' chosen. See 'SumStyle' for more information+-- about the various styles.++-- |'JsonFormat' for 'Text'.+textJsonFormat :: JsonFormat e Text+textJsonFormat = abeJsonFormat ABE.asText++$makeTupleFormats++-- |'JsonFormat' for '()' which maps to an empty array.+unitJsonFormat :: JsonFormat e ()+unitJsonFormat = aesonJsonFormat++-- |'JsonFormat' for 'Vector's which map to an array.+vectorJsonFormat :: JsonFormat e a -> JsonFormat e (V.Vector a)+vectorJsonFormat (JsonFormat (JsonProfunctor oA iA)) =+ JsonFormat (JsonProfunctor o i)+ where+ o = Aeson.Array . map oA+ i = V.fromList <$> ABE.eachInArray iA++-- |'JsonFormat' for 'Version' which maps to a string.+versionJsonFormat :: JsonFormat e Version+versionJsonFormat = aesonJsonFormat
src/Composite/Aeson/Record.hs view
@@ -2,22 +2,61 @@ import BasicPrelude import Composite.Aeson.Base- ( ToJson(ToJson)- , FromJson(FromJson)- , JsonProfunctor(JsonProfunctor), _JsonProfunctor+ ( JsonProfunctor(JsonProfunctor) , JsonFormat(JsonFormat)- , wrappedFormat+ , wrappedJsonFormat ) import Composite.Base (NamedField(fieldName))-import Composite.Aeson.Default (DefaultJsonFormat(defaultJsonFormat))-import Control.Lens (Wrapped(type Unwrapped, _Wrapped'), _1, _2, view)+import Composite.Aeson.Formats.Default (DefaultJsonFormat(defaultJsonFormat))+import Control.Lens (Wrapped(type Unwrapped, _Wrapped'), from, view) import qualified Data.Aeson as Aeson import qualified Data.Aeson.BetterErrors as ABE+import Data.Functor.Contravariant (Contravariant, contramap) import qualified Data.HashMap.Strict as HM import Data.Proxy (Proxy(Proxy)) import Data.Vinyl (Rec((:&), RNil), rmap) import Data.Vinyl.Functor (Identity(Identity)) +-- |Function to encode a single field of a record, possibly choosing to elide the field with @Nothing@.+newtype ToField a = ToField { unToField :: a -> Maybe Aeson.Value }++instance Contravariant ToField where+ contramap f (ToField g) = ToField (g . f)++-- |Function to decode a single field of a record.+newtype FromField e a = FromField { unFromField :: Text -> ABE.Parse e a }++instance Functor (FromField e) where+ fmap f (FromField g) = FromField (fmap f . g)++-- |Descriptor of how to handle a single record field with functions to parse and emit the field which can handle missing fields on parse and elide fields on+-- encode.+data JsonField e a = JsonField (a -> Maybe Aeson.Value) (Text -> ABE.Parse e a)++-- |Given a 'JsonFormat' for some type @a@, produce a 'JsonField' for fields of type @a@ which fails if the field is missing and never elides the field.+field :: (Wrapped a', Unwrapped a' ~ a) => JsonFormat e a -> JsonField e a'+field fmt = field' (wrappedJsonFormat fmt)++-- |Given a 'JsonFormat' for some type @a@, produce a 'JsonField' for fields of type @a@ which fails if the field is missing and never elides the field.+field' :: JsonFormat e a -> JsonField e a+field' (JsonFormat (JsonProfunctor o i)) = JsonField (Just . o) (`ABE.key` i)++-- |Given a 'JsonFormat' for some type @a@, produce a 'JsonField' for fields of type @Maybe a@ which substitutes @Nothing@ for either @null@ or missing field,+-- and which elides the field on @Nothing@.+optionalField :: forall e a a'. (Wrapped a', Unwrapped a' ~ Maybe a) => JsonFormat e a -> JsonField e a'+optionalField (JsonFormat (JsonProfunctor o i)) =+ JsonField+ (map o . view _Wrapped')+ (\ k -> view (from _Wrapped') . join <$> ABE.keyMay k (ABE.perhaps i))++-- |Given a 'JsonFormat' for some type @a@, produce a 'JsonField' for fields of type @Maybe a@ which substitutes @Nothing@ for either @null@ or missing field,+-- and which elides the field on @Nothing@.+optionalField' :: JsonFormat e a -> JsonField e (Maybe a)+optionalField' (JsonFormat (JsonProfunctor o i)) =+ JsonField+ (map o)+ (\ k -> join <$> ABE.keyMay k (ABE.perhaps i))+ -- |Type of a Vinyl/Frames record which describes how to map fields of a record to JSON and back. -- -- This record type has the same field names and types as a regular record with 'Identity' but instead of 'Identity' uses 'JsonFormat e'.@@ -32,8 +71,8 @@ -- -- @ -- userFormatRec :: 'JsonFormatRec' e User--- userFormatRec = 'Composite.Aeson.Default.integralJsonFormat'--- &: 'Composite.Aeson.Default.textJsonFormat'+-- userFormatRec = 'field' 'Composite.Aeson.Default.integralJsonFormat'+-- &: 'field' 'Composite.Aeson.Default.textJsonFormat' -- &: Nil -- @ --@@ -59,38 +98,38 @@ -- Would use the same JSON schema as the other examples, but the @id@ field would be encoded in JSON as 10 higher. -- -- Once you've produced an appropriate 'JsonFormatRec' for your case, use 'recJsonFormat' to make a @'JsonFormat' e (Record '[…])@ of it.-type JsonFormatRec e rs = Rec (JsonFormat e) rs+type JsonFormatRec e rs = Rec (JsonField e) rs -- |Helper class which induces over the structure of a record, reflecting the name of each field and applying each 'ToJson' to its corresponding value to -- produce JSON. class RecToJsonObject rs where- -- |Given a record of 'ToJson' functions for each field in @rs@, convert an 'Identity' record to 'Aeson.Object'.- recToJsonObject :: Rec ToJson rs -> Rec Identity rs -> Aeson.Object+ -- |Given a record of 'ToField' functions for each field in @rs@, convert an 'Identity' record to 'Aeson.Object'.+ recToJsonObject :: Rec ToField rs -> Rec Identity rs -> Aeson.Object instance RecToJsonObject '[] where recToJsonObject _ = const mempty instance forall r rs. (NamedField r, RecToJsonObject rs) => RecToJsonObject (r ': rs) where- recToJsonObject (ToJson aToJson :& fs) (Identity a :& as) =- HM.insert (fieldName (Proxy :: Proxy r)) (aToJson a) $+ recToJsonObject (ToField aToField :& fs) (Identity a :& as) =+ maybe id (HM.insert (fieldName (Proxy :: Proxy r))) (aToField a) $ recToJsonObject fs as --- |Given a record of 'ToJson' functions for each field in @rs@, convert an 'Identity' record to JSON. Equivalent to @Aeson.Object . 'recToJsonObject' fmt@-recToJson :: RecToJsonObject rs => Rec ToJson rs -> Rec Identity rs -> Aeson.Value+-- |Given a record of 'ToField' functions for each field in @rs@, convert an 'Identity' record to JSON. Equivalent to @Aeson.Object . 'recToJsonObject' fmt@+recToJson :: RecToJsonObject rs => Rec ToField rs -> Rec Identity rs -> Aeson.Value recToJson = map Aeson.Object . recToJsonObject -- |Class which induces over the structure of a record, parsing fields using a record of 'FromJson' and assembling an 'Identity' record. class RecFromJson rs where -- |Given a record of 'FromJson' parsers for each field in @rs@, produce an 'ABE.Parse' to make an 'Identity' record.- recFromJson :: Rec (FromJson e) rs -> ABE.Parse e (Rec Identity rs)+ recFromJson :: Rec (FromField e) rs -> ABE.Parse e (Rec Identity rs) instance RecFromJson '[] where recFromJson _ = pure RNil instance forall r rs. (NamedField r, RecFromJson rs) => RecFromJson (r ': rs) where- recFromJson (FromJson aFromJson :& fs) =+ recFromJson (FromField aFromField :& fs) = (:&)- <$> ABE.key (fieldName (Proxy :: Proxy r)) (Identity <$> aFromJson)+ <$> (Identity <$> aFromField (fieldName (Proxy :: Proxy r))) <*> recFromJson fs -- |Take a 'JsonFormatRec' describing how to map a record with field @rs@ to and from JSON and produce a @'JsonFormat' e (Record rs)@.@@ -99,8 +138,8 @@ recJsonFormat :: (RecToJsonObject rs, RecFromJson rs) => JsonFormatRec e rs -> JsonFormat e (Rec Identity rs) recJsonFormat formatRec = JsonFormat $ JsonProfunctor- (recToJson . rmap (view (_Wrapped' . _JsonProfunctor . _1)) $ formatRec)- (recFromJson . rmap (view (_Wrapped' . _JsonProfunctor . _2)) $ formatRec)+ (recToJson . rmap (\ (JsonField o _) -> ToField o ) $ formatRec)+ (recFromJson . rmap (\ (JsonField _ i) -> FromField i) $ formatRec) -- |Class to make a 'JsonFormatRec' with 'defaultJsonFormat' for each field. class DefaultJsonFormatRec rs where@@ -108,7 +147,7 @@ defaultJsonFormatRec :: JsonFormatRec e rs instance (NamedField r, DefaultJsonFormat (Unwrapped r), DefaultJsonFormatRec rs) => DefaultJsonFormatRec (r ': rs) where- defaultJsonFormatRec = wrappedFormat defaultJsonFormat :& defaultJsonFormatRec+ defaultJsonFormatRec = field defaultJsonFormat :& defaultJsonFormatRec instance DefaultJsonFormatRec '[] where defaultJsonFormatRec = RNil
+ src/Composite/Aeson/TH.hs view
@@ -0,0 +1,111 @@+module Composite.Aeson.TH+ ( makeRecJsonWrapper+ , makeRecJsonWrapperExplicit+ ) where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat, dimapJsonFormat, parseJsonWithFormat', toJsonWithFormat)+import Composite.Aeson.Record (defaultJsonFormatRec, recJsonFormat)+import Control.Lens (_head, over)+import Data.Aeson (FromJSON(parseJSON), ToJSON(toJSON))+import Data.Char (toLower)+import Frames (Record)+import Language.Haskell.TH+ ( Q, clause, cxt+ , normalB+ , recC, varBangType, bang, bangType, noSourceUnpackedness, noSourceStrictness+ , Dec, funD, instanceD, newtypeD, sigD, valD+ , Exp, conE, varE+ , Name, mkName, newName+ , varP+ , conT+ )++-- |TH splice which makes it more convenient to define ToJSON / FromJSON instances for record types.+--+-- For example:+--+-- @+-- type MyRecord = '[FFoo, FBar]+-- makeRecJsonWrapper "MyRecordJson" ''MyRecord+-- @+--+-- is equivalent to:+--+-- @+-- newtype MyRecordJson = MyRecordJson { unMyRecordJson :: Record MyRecord }+-- myRecordJsonFormat :: 'Composite.Aeson.Record.JsonFormatRec' Void MyRecordJson+-- myRecordJsonFormat =+-- 'dimapJsonFormat' unMyRecordJson MyRecordJson $+-- 'recJsonFormat' defaultJsonFormatRec+-- instance FromJSON MyRecordJson where+-- parseJSON = 'parseJsonWithFormat'' myRecordJsonFormat+-- instance ToJSON MyRecordJson where+-- toJSON = 'toJsonWithFormat' myRecordJsonFormat+-- @+--+-- This function uses 'defaultJsonFormatRec' to derive the formatting for the record. If you want to customize that formatting, use+-- 'makeRecJsonWrapperExplicit' instead.+makeRecJsonWrapper :: String -> Name -> Q [Dec]+makeRecJsonWrapper wrapperName tyName =+ makeRecJsonWrapperExplicit wrapperName tyName [| defaultJsonFormatRec |]++-- |TH splice which makes it more convenient to define ToJSON / FromJSON instances for record types.+--+-- For example:+--+-- @+-- type MyRecord = '[FFoo, FBar]+-- makeRecJsonWrapperExplicit "MyRecordJson" ''MyRecord [| set (rlens fFoo_) specialFormat defaultJsonFormatRec |]+-- @+--+-- is equivalent to:+--+-- @+-- newtype MyRecordJson = MyRecordJson { unMyRecordJson :: Record MyRecord }+-- myRecordJsonFormat :: 'Composite.Aeson.Record.JsonFormatRec' Void MyRecordJson+-- myRecordJsonFormat =+-- 'dimapJsonFormat' unMyRecordJson MyRecordJson $+-- 'recJsonFormat' (set (rlens fFoo_) specialFormat defaultJsonFormatRec)+-- instance FromJSON MyRecordJson where+-- parseJSON = 'parseJsonWithFormat'' myRecordJsonFormat+-- instance ToJSON MyRecordJson where+-- toJSON = 'toJsonWithFormat' myRecordJsonFormat+-- @+makeRecJsonWrapperExplicit :: String -> Name -> Q Exp -> Q [Dec]+makeRecJsonWrapperExplicit wrapperNameStr fieldsTyName recFormatExp = do+ let wrapperName = mkName wrapperNameStr+ extractorName = mkName $ "un" <> wrapperNameStr+ recordTy = [t| Record $(conT fieldsTyName) |]+ formatName <- newName $ over _head toLower wrapperNameStr <> "Format"+ sequence+ [ newtypeD+ (cxt [])+ wrapperName+ [] -- TyVarBndrs+ Nothing -- kind+ (recC wrapperName [varBangType extractorName (bangType (bang noSourceUnpackedness noSourceStrictness) recordTy)])+ (cxt []) -- deriving context+ , sigD+ formatName+ [t| forall e. JsonFormat e $(conT wrapperName) |]+ , valD+ (varP formatName)+ (normalB [| dimapJsonFormat $(varE extractorName) $(conE wrapperName) (recJsonFormat $recFormatExp) |])+ []+ , instanceD+ (cxt [])+ [t| FromJSON $(conT wrapperName) |]+ [ funD+ 'parseJSON+ [ clause [] (normalB [| parseJsonWithFormat' $(varE formatName) |]) [] ]+ ]+ , instanceD+ (cxt [])+ [t| ToJSON $(conT wrapperName) |]+ [ funD+ 'toJSON+ [ clause [] (normalB [| toJsonWithFormat $(varE formatName) |]) [] ]+ ]+ ]+
+ test/Main.hs view
@@ -0,0 +1,10 @@+import BasicPrelude+import RecordSpec (recordSuite)+import TupleSpec (tupleSuite)+import Test.Hspec (hspec)++main :: IO ()+main = hspec $ do+ recordSuite+ tupleSuite+
+ test/RecordSpec.hs view
@@ -0,0 +1,45 @@+module RecordSpec where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat, fromJsonWithFormat, toJsonWithFormat)+import Composite.Aeson.Formats.Provided (stringJsonFormat)+import Composite.Aeson.Record (defaultJsonFormatRec, recJsonFormat, optionalField)+import Composite.TH (withLensesAndProxies)+import Control.Lens (set)+import Data.Aeson.BetterErrors (parseValue)+import Data.Aeson.QQ (aesonQQ)+import Data.Vinyl.Lens (rlens)+import Data.Void (Void)+import Frames (Record, (:->), (&:), pattern Nil)+import Test.Hspec (Spec, describe, it, shouldBe, shouldNotBe)++withLensesAndProxies [d|+ type FFoo = "foo" :-> Int+ type FBar = "bar" :-> Maybe String+ |]+type TestRec = '["foo" :-> Int, "bar" :-> Maybe String]++recordSuite :: Spec+recordSuite =+ describe "Record support" $ do+ let defaultFmt, optionalFmt :: JsonFormat Void (Record TestRec)+ defaultFmt = recJsonFormat defaultJsonFormatRec+ optionalFmt = recJsonFormat $ set (rlens fBar_) (optionalField stringJsonFormat) defaultJsonFormatRec++ it "by default requires all fields" $ do+ parseValue (fromJsonWithFormat defaultFmt) [aesonQQ| {foo: 123, bar: "abc"} |] `shouldBe` Right (123 &: Just "abc" &: Nil)+ parseValue (fromJsonWithFormat defaultFmt) [aesonQQ| {foo: 123, bar: null} |] `shouldBe` Right (123 &: Nothing &: Nil)+ parseValue (fromJsonWithFormat defaultFmt) [aesonQQ| {foo: 123} |] `shouldNotBe` Right (123 &: Nothing &: Nil)++ it "by default encodes all fields" $ do+ toJsonWithFormat defaultFmt (123 &: Just "abc" &: Nil) `shouldBe` [aesonQQ| {foo: 123, bar: "abc"} |]+ toJsonWithFormat defaultFmt (123 &: Nothing &: Nil) `shouldBe` [aesonQQ| {foo: 123, bar: null} |]++ it "can make fields optional" $ do+ parseValue (fromJsonWithFormat optionalFmt) [aesonQQ| {foo: 123, bar: "abc"} |] `shouldBe` Right (123 &: Just "abc" &: Nil)+ parseValue (fromJsonWithFormat optionalFmt) [aesonQQ| {foo: 123, bar: null} |] `shouldBe` Right (123 &: Nothing &: Nil)+ parseValue (fromJsonWithFormat optionalFmt) [aesonQQ| {foo: 123} |] `shouldBe` Right (123 &: Nothing &: Nil)++ it "omits Nothing fields when they're made optional" $ do+ toJsonWithFormat optionalFmt (123 &: Just "abc" &: Nil) `shouldBe` [aesonQQ| {foo: 123, bar: "abc"} |]+ toJsonWithFormat optionalFmt (123 &: Nothing &: Nil) `shouldBe` [aesonQQ| {foo: 123} |]
+ test/TupleSpec.hs view
@@ -0,0 +1,17 @@+module TupleSpec where++import BasicPrelude+import Composite.Aeson.Base (JsonFormat, fromJsonWithFormat, toJsonWithFormat)+import Composite.Aeson.Formats.Provided (tuple3JsonFormat, integralJsonFormat, stringJsonFormat, charJsonFormat)+import Data.Aeson.BetterErrors (parseValue)+import Data.Void (Void)+import Test.Hspec (Spec, describe, it, shouldBe)+import Test.QuickCheck (property)++tupleSuite :: Spec+tupleSuite =+ describe "Tuple formats" $ do+ it "works for 3-tuples" $ do+ let fmt = tuple3JsonFormat (integralJsonFormat :: JsonFormat Void Int) stringJsonFormat charJsonFormat+ property $ \ t ->+ parseValue (fromJsonWithFormat fmt) (toJsonWithFormat fmt t) `shouldBe` Right t