genericrandom alternatives and similar packages
Based on the "generic" category.
Alternatively, view genericrandom alternatives based on common mentions on social networks and blogs.

genericlens
Generically derive traversals, lenses, and prisms. 
genericrecords
Generically derive traversals, lenses, and prisms. 
genericderiving
Generic programming library for generalised deriving. 
genericoverrideaeson
Override instances used by Haskell's generic derivation 
genericlenslabels
GHC.OverloadedLabels.IsLabel instance for lenses from ghcgenerics 
genericlenslite
Monomorphic field lens like with genericlens 
genericopticslite
Monomorphic field opics like with genericlens
Scout APM: A developer's best friend. Try free for 14days
Do you think we are missing an alternative of genericrandom or a related project?
Popular Comparisons
README
Generic random generators
Generic random generators
to implement Arbitrary
instances for QuickCheck
Automating the arbitrary
boilerplate also ensures that when a type changes to
have more or fewer constructors, then the generator either fixes itself to
generate that new case (when using the uniform
distribution) or causes a
compilation error so you remember to fix it (when using an explicit
distribution).
This package also offers a simple (optional) strategy to ensure termination for
recursive types:
make Test.QuickCheck.Gen
's size parameter decrease at every recursive call;
when it reaches zero, sample directly from a trivially terminating generator
given explicitly (genericArbitraryRec
and withBaseCase
) or implicitly
(genericArbitrary'
).
Example
{# LANGUAGE DeriveGeneric #}
import GHC.Generics (Generic)
import Test.QuickCheck
import Generic.Random
data Tree a = Leaf  Node (Tree a) a (Tree a)
deriving (Show, Generic)
instance Arbitrary a => Arbitrary (Tree a) where
arbitrary = genericArbitraryRec uniform `withBaseCase` return Leaf
 Equivalent to
 > arbitrary =
 > sized $ \n >
 > if n == 0 then
 > return Leaf
 > else
 > oneof
 > [ return Leaf
 > , resize (n `div` 3) $
 > Node <$> arbitrary <*> arbitrary <*> arbitrary
 > ]
main :: IO ()
main = sample (arbitrary :: Gen (Tree ()))
Related
The following two packages also derive random generators, but only with a uniform distribution of constructors:
 quickcheckarbitrarytemplate (TH)
 genericarbitrary (GHC Generics)
testingfeat: derive enumerations for algebraic data types, which can be turned into random generators (TH).
boltzmannsamplers: derive Boltzmann samplers (SYB).