-- | Simple 'GHC.Generics'-based 'arbitrary' generators. -- -- Here is an example. Define your type. -- -- > data Tree a = Leaf a | Node (Tree a) (Tree a) -- -- Derive 'GHC.Generics.Generic'. -- -- > deriving 'Generic' -- Turn on the DeriveGeneric extension -- -- Pick an arbitrary implementation. -- -- > instance Arbitrary a => Arbitrary (Tree a) where -- > arbitrary = genericArbitraryFrequency [9, 8] -- -- @arbitrary :: 'Gen' (Tree a)@ picks a @Leaf@ with probability 9\/17, or a -- @Node@ with probability 8\/17, and recursively fills their fields with -- @arbitrary@. module Generic.Random.Generic ( genericArbitrary , genericArbitraryFrequency , genericArbitraryFrequency' , genericArbitrary' , Nat (..) , BaseCases' , BaseCases ) where import Generic.Random.Internal.Generic