Metadata revisions for stock-quickcheck-0.1.0.0

Package maintainers and Hackage trustees are allowed to edit certain bits of package metadata after a release, without uploading a new tarball. Note that the tarball itself is never changed, just the metadata that is stored separately. For more information about metadata revisions, please refer to the Hackage Metadata Revisions FAQ.

No. Time User SHA256
-r5 2026-06-24T01:43:56Z BaldurBlondal 82c5a3d16f94094f89a30b2acc91b5fe1ddb84cf507060b01d8fa1daa9c332c9
  • Changed tested-with from

    ghc ==9.8.1: ghc ==9.10.3: ghc ==9.12.4: ghc ==9.14.1
    to
    ghc ==9.8.1: ghc ==9.10.3: ghc ==9.12.4: ghc ==9.14.1: ghc ==9.10.3: ghc ==9.12.4: ghc ==9.14.1

  • Changed description from

    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-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @<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>@ and
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @<https://hackage-content.haskell.org/package/generic-arbitrary generic-arbitrary>@. 
    It picks a constructor, preferring terminal constructors once the
    size runs out, so recursive types terminate, and fills each field
    with its own @arbitrary@, dividing the size among recursive
    fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    <https://hackage.haskell.org/package/stock stock> companion packages include:
    
    * __@<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>@
    * __@<https://hackage.haskell.org/package/stock-aeson 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>@
    * __@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>@
    to
    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-quickcheck__ extends it to support
    @<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:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @<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>@ and
    @<https://hackage-content.haskell.org/package/QuickCheck-2.18.0.0/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @<https://hackage-content.haskell.org/package/generic-arbitrary generic-arbitrary>@. 
    It picks a constructor, preferring terminal constructors once the
    size runs out, so recursive types terminate, and fills each field
    with its own @arbitrary@, dividing the size among recursive
    fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    <https://hackage.haskell.org/package/stock stock> companion packages include:
    
    * __@<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>@
    * __@<https://hackage.haskell.org/package/stock-aeson 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>@
    * __@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>@

-r4 2026-06-24T00:26:33Z BaldurBlondal 1b50e87e7550619d102ffca8412147cf878244fd8445172dc41652c637c0dd0a
  • Changed description from

    The @<https://hackage.haskell.org/package/stock stock>@ plugin
    provides a datatype for deriving and synthesising instances at
    compile time. __stock-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    @<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>@
    * @<https://hackage.haskell.org/package/stock-aeson 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>@
    * __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>@
    to
    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-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @<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>@ and
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @<https://hackage-content.haskell.org/package/generic-arbitrary generic-arbitrary>@. 
    It picks a constructor, preferring terminal constructors once the
    size runs out, so recursive types terminate, and fills each field
    with its own @arbitrary@, dividing the size among recursive
    fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    <https://hackage.haskell.org/package/stock stock> companion packages include:
    
    * __@<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>@
    * __@<https://hackage.haskell.org/package/stock-aeson 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>@
    * __@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>@

-r3 2026-06-23T20:01:07Z BaldurBlondal 92e6925521242f69be583761bc0eea7c4aedb3802662bd33585aba66ebe2bdec
  • Changed description from

    The @<https://hackage.haskell.org/package/stock stock>@ plugin
    provides a datatype for deriving and synthesising instances at
    compile time. __stock-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    > import Stock.Override
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    @<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>@
    * @<https://hackage.haskell.org/package/stock-aeson 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>@
    * __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>@
    to
    The @<https://hackage.haskell.org/package/stock stock>@ plugin
    provides a datatype for deriving and synthesising instances at
    compile time. __stock-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    @<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>@
    * @<https://hackage.haskell.org/package/stock-aeson 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>@
    * __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>@

-r2 2026-06-23T19:59:58Z BaldurBlondal def968306c3203455ce8401c0e14dba18e3af9d693bc6e9ae7b0c75d5b2ef9f8
  • Changed description from

    The <https://hackage.haskell.org/package/stock stock> plugin provides a datatype for deriving and synthesising
    instances at compile time. @stock-quickcheck@ extends the <https://hackage.haskell.org/package/stock stock>
    with support for @Arbitrary@ (and higher-kinded variants) and
    @CoArbitrary@.
    
    > {-# options_ghc -fplugin Stock #-}
    > 
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    > 
    > import Stock
    > import Stock.QuickCheck
    > import Stock.Override
    > 
    > import Test.QuickCheck
    > 
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    @stock-quickcheck@ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@. 
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    to
    The @<https://hackage.haskell.org/package/stock stock>@ plugin
    provides a datatype for deriving and synthesising instances at
    compile time. __stock-quickcheck__ extends it to support
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:Arbitrary Arbitrary>@,
    @<https://hackage.haskell.org/package/QuickCheck/docs/Test-QuickCheck.html#t:CoArbitrary CoArbitrary>@,
    and their higher-kinded variants.
    
    > {-# options_ghc -fplugin Stock #-}
    >
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    >
    > import Stock
    > import Stock.QuickCheck
    > import Stock.Override
    >
    > import Test.QuickCheck
    >
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    __stock-quickcheck__ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@.
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    
    @<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>@
    * @<https://hackage.haskell.org/package/stock-aeson 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>@
    * __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>@

-r1 2026-06-23T16:29:29Z BaldurBlondal c8d34bfe97f167f42d650e278c98a45ad8aacdce3bf3e302d1567fc348d935a9
  • Changed description from

    The @stock@ plugin provides a datatype for deriving and synthesising
    instances at compile time. @stock-quickcheck@ extends the @stock@
    with support for @Arbitrary@ (and higher-kinded variants) and
    @CoArbitrary@.
    
    > {-# options_ghc -fplugin Stock #-}
    > 
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    > 
    > import Stock
    > import Stock.QuickCheck
    > import Stock.Override
    > 
    > import Test.QuickCheck
    > 
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    @stock-quickcheck@ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@. 
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..
    to
    The <https://hackage.haskell.org/package/stock stock> plugin provides a datatype for deriving and synthesising
    instances at compile time. @stock-quickcheck@ extends the <https://hackage.haskell.org/package/stock stock>
    with support for @Arbitrary@ (and higher-kinded variants) and
    @CoArbitrary@.
    
    > {-# options_ghc -fplugin Stock #-}
    > 
    > {-# language DerivingVia #-}
    > {-# language DataKinds   #-}
    > 
    > import Stock
    > import Stock.QuickCheck
    > import Stock.Override
    > 
    > import Test.QuickCheck
    > 
    > data Person = P { name :: String, age :: Int }
    >   deriving (Eq, Ord, Show, Read) via
    >     Stock Person
    >   deriving Arbitrary via
    >     Overriding Person
    >       [ name via ASCIIString, age via Positive ]
    
    @stock-quickcheck@ provides four instances, that signal to the
    plugin how to derive @Arbitrary@, @Arbitrary1@, @Arbitrary2@ and
    @CoArbitrary@. 
    
    @arbitrary@ is structural and size-aware, in the style of
    @generic-arbitrary@. It picks a constructor, preferring terminal
    constructors once the size runs out, so recursive types terminate,
    and fills each field with its own @arbitrary@, dividing the size
    among recursive fields. @shrink@ defaults.
    
    > instance DeriveStock  Arbitrary   ..
    > instance DeriveStock1 Arbitrary1  ..
    > instance DeriveStock2 Arbitrary2  ..
    > instance DeriveStock  CoArbitrary ..

-r0 2026-06-23T15:43:51Z BaldurBlondal 8fd530321a00d2999faaf9d96aeefff40147fb3471be389d574815cb2f81e467