Earley-0.12.0.0: tests/Arbitrary.hs
{-# LANGUAGE RankNTypes #-}
module Arbitrary where
import qualified Test.QuickCheck as QC
import Text.Earley.Generator
-- | Generate an arbitrary member generated by a 'Generator'.
arbitrary :: Generator t a -> QC.Gen (a, [t])
arbitrary gen = QC.sized $ \n -> QC.elements (take (1 `max` n) xs)
where
xs = language gen