Cabal revisions of stock-aeson-0.1.0.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-cabal-version: 3.0-name: stock-aeson-version: 0.1.0.0-synopsis: Derive ToJSON / FromJSON via the stock plugin-description:- The @stock@ plugin provides a datatype for deriving and synthesising- instances at compile time. @stock-aeson@ extends the @stock@ with- support for @FromJSON@ and @ToJSON@, and their higher-kinded variants.-- > {-# options_ghc -fplugin Stock #-}- > - > {-# language DerivingVia #-}- > - > import Stock- > import Stock.Aeson- > - > data T = MkT Int String- > deriving (ToJSON, FromJSON) via Stock T-- The wire format reproduces aeson's @genericToJSON \/ genericParseJSON- defaultOptions@ exactly (a self-inverse tagged object,- @{ "tag": "Con", "contents": [field0, …] }@), so @stock-aeson@ is a drop-in- for @deriving stock Generic@ + @deriving anyclass (ToJSON, FromJSON)@.-- > instance DeriveStock ToJSON ..- > instance DeriveStock FromJSON ..- > instance DeriveStock1 ToJSON1 ..- > instance DeriveStock1 FromJSON1 ..- > instance DeriveStock2 ToJSON2 ..- > instance DeriveStock2 FromJSON2 ..-- The lifted variants derive the same zero-cost way (no @Generic@ at runtime):- parameter fields route through the supplied per-parameter encoders\/parsers, so- the bytes still match @aeson@'s generic deriving.-- > data F a = MkF a [a] deriving (ToJSON1, FromJSON1) via Stock1 F- > data P a b = MkP a b [b] deriving (ToJSON2, FromJSON2) via Stock2 P-- (@aeson@ has no @Generic2@; the arity-2 encoding is defined to coincide with- the value encoding when both per-parameter encoders are @toJSON@.)-license: BSD-3-Clause-license-file: LICENSE-author: Baldur Blöndal-maintainer: baldur.blondal@iohk.io-category: Type System-build-type: Simple-tested-with: GHC == 9.8.1, GHC == 9.10.3, GHC == 9.12.4, GHC == 9.14.1--library- exposed-modules: Stock.Aeson- build-depends: base >=4.18 && <5,- ghc >=9.6 && <9.16,- stock >=0.1 && <0.2,- aeson >=2 && <3- hs-source-dirs: .- default-language: GHC2021- ghc-options: -Wall--test-suite test- type: exitcode-stdio-1.0- main-is: Test.hs- build-depends: base, stock, stock-aeson, aeson, bytestring- ghc-options: -fplugin=Stock- hs-source-dirs: test- default-language: GHC2021--source-repository head- type: git- location: https://github.com/Icelandjack/stock.git- subdir: aeson+cabal-version: 3.0 +name: stock-aeson +version: 0.1.0.0 +x-revision: 1 +synopsis: Derive ToJSON / FromJSON via the stock plugin +description: + The <https://hackage.haskell.org/package/stock stock> plugin provides a datatype for deriving and synthesising + instances at compile time. @stock-aeson@ extends the <https://hackage.haskell.org/package/stock stock> with + support for @FromJSON@ and @ToJSON@, and their higher-kinded variants. + + > {-# options_ghc -fplugin Stock #-} + > + > {-# language DerivingVia #-} + > + > import Stock + > import Stock.Aeson + > + > data T = MkT Int String + > deriving (ToJSON, FromJSON) via Stock T + + The wire format reproduces aeson's @genericToJSON \/ genericParseJSON + defaultOptions@ exactly (a self-inverse tagged object, + @{ "tag": "Con", "contents": [field0, …] }@), so @stock-aeson@ is a drop-in + for @deriving stock Generic@ + @deriving anyclass (ToJSON, FromJSON)@. + + > instance DeriveStock ToJSON .. + > instance DeriveStock FromJSON .. + > instance DeriveStock1 ToJSON1 .. + > instance DeriveStock1 FromJSON1 .. + > instance DeriveStock2 ToJSON2 .. + > instance DeriveStock2 FromJSON2 .. + + The lifted variants derive the same zero-cost way (no @Generic@ at runtime): + parameter fields route through the supplied per-parameter encoders\/parsers, so + the bytes still match @aeson@'s generic deriving. + + > data F a = MkF a [a] deriving (ToJSON1, FromJSON1) via Stock1 F + > data P a b = MkP a b [b] deriving (ToJSON2, FromJSON2) via Stock2 P + + (@aeson@ has no @Generic2@; the arity-2 encoding is defined to coincide with + the value encoding when both per-parameter encoders are @toJSON@.) +license: BSD-3-Clause +license-file: LICENSE +author: Baldur Blöndal +maintainer: baldur.blondal@iohk.io +category: Type System +build-type: Simple +tested-with: GHC == 9.8.1, GHC == 9.10.3, GHC == 9.12.4, GHC == 9.14.1 + +library + exposed-modules: Stock.Aeson + build-depends: base >=4.18 && <5, + ghc >=9.6 && <9.16, + stock >=0.1 && <0.2, + aeson >=2 && <3 + hs-source-dirs: . + default-language: GHC2021 + ghc-options: -Wall + +test-suite test + type: exitcode-stdio-1.0 + main-is: Test.hs + build-depends: base, stock, stock-aeson, aeson, bytestring + ghc-options: -fplugin=Stock + hs-source-dirs: test + default-language: GHC2021 + +source-repository head + type: git + location: https://github.com/Icelandjack/stock.git + subdir: aeson
revision 2
-cabal-version: 3.0 -name: stock-aeson -version: 0.1.0.0 -x-revision: 1 -synopsis: Derive ToJSON / FromJSON via the stock plugin +cabal-version: 3.0 +name: stock-aeson +version: 0.1.0.0 +x-revision: 2 +synopsis: Derive ToJSON / FromJSON via the stock plugin description: - The <https://hackage.haskell.org/package/stock stock> plugin provides a datatype for deriving and synthesising - instances at compile time. @stock-aeson@ extends the <https://hackage.haskell.org/package/stock stock> with - support for @FromJSON@ and @ToJSON@, and their higher-kinded variants. + The @<https://hackage.haskell.org/package/stock stock>@ plugin + provides a datatype for deriving and synthesising instances at + compile time. __stock-aeson__ extends it to support + @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, + @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, and their higher-kinded variants. + > {-# options_ghc -fplugin Stock #-} > > {-# language DerivingVia #-} > import Stock > import Stock.Aeson > - > data T = MkT Int String - > deriving (ToJSON, FromJSON) via Stock T + > data Person = P { name :: String, age :: Int } + > deriving (ToJSON, FromJSON) via + > Stock Person - The wire format reproduces aeson's @genericToJSON \/ genericParseJSON - defaultOptions@ exactly (a self-inverse tagged object, - @{ "tag": "Con", "contents": [field0, …] }@), so @stock-aeson@ is a drop-in - for @deriving stock Generic@ + @deriving anyclass (ToJSON, FromJSON)@. + The wire format reproduces aeson's @genericToJSON@ \/ + @genericParseJSON defaultOptions@ exactly, __stock-aeson__ is a + drop-in for @deriving anyclass (ToJSON, FromJSON)@. - > instance DeriveStock ToJSON .. - > instance DeriveStock FromJSON .. - > instance DeriveStock1 ToJSON1 .. - > instance DeriveStock1 FromJSON1 .. - > instance DeriveStock2 ToJSON2 .. - > instance DeriveStock2 FromJSON2 .. + __stock-aeson__ provides six instances, that signal to the plugin + how to derive + @<https://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Profunctor Profunctor>@. - The lifted variants derive the same zero-cost way (no @Generic@ at runtime): - parameter fields route through the supplied per-parameter encoders\/parsers, so - the bytes still match @aeson@'s generic deriving. + > instance DeriveStock ToJSON .. + > instance DeriveStock1 ToJSON1 .. + > instance DeriveStock2 ToJSON2 .. + > instance DeriveStock FromJSON .. + > instance DeriveStock1 FromJSON1 .. + > instance DeriveStock2 FromJSON2 .. + The lifted variants derive the same zero-cost way (no @Generic@ at + runtime): parameter fields route through the supplied per-parameter + encoders\/parsers, so the bytes still match @aeson@'s generic + deriving. + > data F a = MkF a [a] deriving (ToJSON1, FromJSON1) via Stock1 F > data P a b = MkP a b [b] deriving (ToJSON2, FromJSON2) via Stock2 P - (@aeson@ has no @Generic2@; the arity-2 encoding is defined to coincide with - the value encoding when both per-parameter encoders are @toJSON@.) + @<https://hackage.haskell.org/package/stock-deepseq stock>@ companion packages include: + + * @<https://hackage.haskell.org/package/stock-deepseq stock-deepseq>@: @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData NFData>@, @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData1 NFData1>@, @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData2 NFData2>@ + * @<https://hackage.haskell.org/package/stock-hashable stock-hashable>@: @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable.html#t:Hashable Hashable>@, @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable-Lifted.html#t:Hashable1 Hashable1>@, @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable-Lifted.html#t:Hashable2 Hashable2>@ + * __stock-aeson__: @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON1 ToJSON1>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON2 ToJSON2>@; @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON1 FromJSON1>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON2 FromJSON2>@ + * @<https://hackage.haskell.org/package/stock-quickcheck stock-quickcheck>@: @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@, @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary1 Arbitrary1>@, @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary2 Arbitrary2>@; @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@ + * @<https://hackage.haskell.org/package/stock-profunctors stock-profunctors>@: @<https://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Profunctor Profunctor>@ + license: BSD-3-Clause license-file: LICENSE author: Baldur Blöndal
revision 3
cabal-version: 3.0 name: stock-aeson version: 0.1.0.0 -x-revision: 2 +x-revision: 3 synopsis: Derive ToJSON / FromJSON via the stock plugin description: @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, and their higher-kinded variants. > {-# options_ghc -fplugin Stock #-} - > + > > {-# language DerivingVia #-} - > + > > import Stock > import Stock.Aeson - > + > > data Person = P { name :: String, age :: Int } - > deriving (ToJSON, FromJSON) via + > deriving (ToJSON, FromJSON) via > Stock Person - The wire format reproduces aeson's @genericToJSON@ \/ - @genericParseJSON defaultOptions@ exactly, __stock-aeson__ is a - drop-in for @deriving anyclass (ToJSON, FromJSON)@. + The wire format reproduces + @<https://hackage.haskell.org/package/aeson aeson>@'s + @genericToJSON@ \/ @genericParseJSON + defaultOptions@. __stock-aeson__ is a drop-in for @deriving anyclass + (ToJSON, FromJSON)@. __stock-aeson__ provides six instances, that signal to the plugin how to derive - @<https://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Profunctor Profunctor>@. + @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, + @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@. > instance DeriveStock ToJSON .. > instance DeriveStock1 ToJSON1 ..
revision 4
cabal-version: 3.0 name: stock-aeson version: 0.1.0.0 -x-revision: 3 +x-revision: 4 synopsis: Derive ToJSON / FromJSON via the stock plugin description: - The @<https://hackage.haskell.org/package/stock stock>@ plugin - provides a datatype for deriving and synthesising instances at - compile time. __stock-aeson__ extends it to support + The <https://hackage.haskell.org/package/stock stock> plugin + provides a newtype + __@<https://hackage-content.haskell.org/package/stock-0.1.0.0/docs/Stock.html#t:Stock Stock>@__ + for deriving and synthesising instances at compile + time. __stock-aeson__ extends it to support @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, and their higher-kinded variants. > data F a = MkF a [a] deriving (ToJSON1, FromJSON1) via Stock1 F > data P a b = MkP a b [b] deriving (ToJSON2, FromJSON2) via Stock2 P - @<https://hackage.haskell.org/package/stock-deepseq stock>@ companion packages include: + <https://hackage.haskell.org/package/stock stock> companion packages include: - * @<https://hackage.haskell.org/package/stock-deepseq stock-deepseq>@: @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData NFData>@, @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData1 NFData1>@, @<https://hackage.haskell.org/package/deepseq/docs/Control-DeepSeq.html#t:NFData2 NFData2>@ - * @<https://hackage.haskell.org/package/stock-hashable stock-hashable>@: @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable.html#t:Hashable Hashable>@, @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable-Lifted.html#t:Hashable1 Hashable1>@, @<https://hackage.haskell.org/package/hashable/docs/Data-Hashable-Lifted.html#t:Hashable2 Hashable2>@ - * __stock-aeson__: @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON1 ToJSON1>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON2 ToJSON2>@; @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON1 FromJSON1>@, @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON2 FromJSON2>@ - * @<https://hackage.haskell.org/package/stock-quickcheck stock-quickcheck>@: @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@, @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary1 Arbitrary1>@, @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary2 Arbitrary2>@; @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@ - * @<https://hackage.haskell.org/package/stock-profunctors stock-profunctors>@: @<https://hackage.haskell.org/package/profunctors/docs/Data-Profunctor.html#t:Profunctor Profunctor>@ + * __@<https://hackage.haskell.org/package/stock-deepseq stock-deepseq>@__: @<https://hackage-content.haskell.org/package/deepseq-1.5.2.0/docs/Control-DeepSeq.html#t:NFData NFData>@, @<https://hackage-content.haskell.org/package/deepseq-1.5.2.0/docs/Control-DeepSeq.html#t:NFData1 NFData1>@, @<https://hackage-content.haskell.org/package/deepseq-1.5.2.0/docs/Control-DeepSeq.html#t:NFData2 NFData2>@ + * __@<https://hackage.haskell.org/package/stock-hashable stock-hashable>@__: @<https://hackage-content.haskell.org/package/hashable-1.5.1.0/docs/Data-Hashable.html#t:Hashable Hashable>@, @<https://hackage-content.haskell.org/package/hashable-1.5.1.0/docs/Data-Hashable-Lifted.html#t:Hashable1 Hashable1>@, @<https://hackage-content.haskell.org/package/hashable-1.5.1.0/docs/Data-Hashable-Lifted.html#t:Hashable2 Hashable2>@ + * __@stock-aeson@__: @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:ToJSON ToJSON>@, @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:ToJSON1 ToJSON1>@, @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:ToJSON2 ToJSON2>@; @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:FromJSON FromJSON>@, @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:FromJSON1 FromJSON1>@, @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:FromJSON2 FromJSON2>@ + * __@<https://hackage.haskell.org/package/stock-quickcheck stock-quickcheck>@__: @<https://hackage-content.haskell.org/package/QuickCheck-2.18.0.0/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@, @<https://hackage-content.haskell.org/package/QuickCheck-2.18.0.0/docs/Test-QuickCheck.html#t:Arbitrary1 Arbitrary1>@, @<https://hackage-content.haskell.org/package/QuickCheck-2.18.0.0/docs/Test-QuickCheck.html#t:Arbitrary2 Arbitrary2>@; @<https://hackage-content.haskell.org/package/QuickCheck-2.18.0.0/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@ + * __@<https://hackage.haskell.org/package/stock-profunctors stock-profunctors>@__: @<https://hackage-content.haskell.org/package/profunctors-5.6.3/docs/Data-Profunctor.html#t:Profunctor Profunctor>@ license: BSD-3-Clause license-file: LICENSE
revision 5
cabal-version: 3.0 name: stock-aeson version: 0.1.0.0 -x-revision: 4 +x-revision: 5 synopsis: Derive ToJSON / FromJSON via the stock plugin description: __@<https://hackage-content.haskell.org/package/stock-0.1.0.0/docs/Stock.html#t:Stock Stock>@__ for deriving and synthesising instances at compile time. __stock-aeson__ extends it to support - @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, - @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@, and their higher-kinded variants. + @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:ToJSON ToJSON>@, + @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:FromJSON FromJSON>@, and their higher-kinded variants. > {-# options_ghc -fplugin Stock #-} > __stock-aeson__ provides six instances, that signal to the plugin how to derive - @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:ToJSON ToJSON>@, - @<https://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON FromJSON>@. + @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:ToJSON ToJSON>@, + @<https://hackage-content.haskell.org/package/aeson-2.3.0.0/docs/Data-Aeson.html#t:FromJSON FromJSON>@. > instance DeriveStock ToJSON .. > instance DeriveStock1 ToJSON1 ..