generic-random-1.5.0.1: test/Inspect/DerivingVia.hs
{-# LANGUAGE
DataKinds,
DeriveGeneric,
DerivingVia,
TypeOperators,
TemplateHaskell
#-}
import GHC.Generics (Generic)
import Test.QuickCheck (Arbitrary(arbitrary), Gen)
import Test.Inspection (inspect, (==-))
import Generic.Random
data T = A | B | C Int [Bool]
deriving Generic
deriving Arbitrary via (GenericArbitrary '[1,2,3] T)
arbT :: Gen T
arbT = genericArbitrary (1 % 2 % 3 % ())
arbT' :: Gen T
arbT' = arbitrary
data T1 = A1 | B1 | C1 Int [Bool]
deriving Generic
deriving Arbitrary via (GenericArbitrary '[1,2,3] `AndShrinking` T1)
main :: IO ()
main = pure ()
inspect $ 'arbT ==- 'arbT'