-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Linear time testing with variant of Arbitrary class that always terminates. -- -- Ever found non-terminating Arbitrary instance? Ever wondered what -- would be a runtime cost of particular Arbitrary instance? -- -- Never let it bother you again: this variant of Arbitrary is -- automatically generating instances, and allows you to see predictable -- linear time generators for most types (providing that you have any -- terminating constructor, that is constructor that does not go deeper -- into the data structure.) -- -- Usage: -- --
-- import Test.LessArbitrary -- -- data MyDataType = ... -- deriving (Show, Generic) -- -- instance LessArbitrary MyDataType -- instance Arbitrary where -- arbitrary = fasterArbitrary --@package less-arbitrary @version 0.1.8.0 module Test.Arbitrary.Laws arbitraryLaws :: forall ty. (Arbitrary ty, Show ty, Eq ty) => Proxy ty -> Laws module Test.LessArbitrary.Cost newtype Cost Cost :: Int -> Cost instance GHC.Num.Num Test.LessArbitrary.Cost.Cost instance GHC.Enum.Bounded Test.LessArbitrary.Cost.Cost instance GHC.Enum.Enum Test.LessArbitrary.Cost.Cost instance GHC.Classes.Ord Test.LessArbitrary.Cost.Cost instance GHC.Classes.Eq Test.LessArbitrary.Cost.Cost module Test.LessArbitrary class StartingState s => LessArbitrary s a lessArbitrary :: LessArbitrary s a => CostGen s a lessArbitrary :: (LessArbitrary s a, Generic a, GLessArbitrary s (Rep a)) => CostGen s a oneof :: HasCallStack => [CostGen s a] -> CostGen s a choose :: Random a => (a, a) -> CostGen s a -- | Choose but only up to the budget (for array and list sizes) budgetChoose :: CostGen s Int newtype CostGen s a CostGen :: StateT (Cost, s) Gen a -> CostGen s a [runCostGen] :: CostGen s a -> StateT (Cost, s) Gen a (<$$$>) :: (a -> b) -> CostGen s a -> CostGen s b ($$$?) :: HasCallStack => CostGen s a -> CostGen s a -> CostGen s a currentBudget :: CostGen s Cost fasterArbitrary :: forall s a. LessArbitrary s a => Gen a genericLessArbitrary :: (Generic a, GLessArbitrary s (Rep a)) => CostGen s a genericLessArbitraryMonoid :: (Generic a, GLessArbitrary s (Rep a), Monoid a) => CostGen s a flatLessArbitrary :: Arbitrary a => CostGen s a spend :: Cost -> CostGen s () withCost :: forall s a. StartingState s => Int -> CostGen s a -> Gen a elements :: [a] -> CostGen s a forAll :: CostGen s a -> (a -> CostGen s b) -> CostGen s b sizedCost :: LessArbitrary s a => CostGen s a -> Gen a class StartingState s startingState :: StartingState s => s instance Control.Monad.Fix.MonadFix (Test.LessArbitrary.CostGen s) instance GHC.Base.Monad (Test.LessArbitrary.CostGen s) instance GHC.Base.Applicative (Test.LessArbitrary.CostGen s) instance GHC.Base.Functor (Test.LessArbitrary.CostGen s) instance Test.LessArbitrary.LessArbitrary s c => Test.LessArbitrary.GLessArbitrary s (GHC.Generics.K1 i c) instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s GHC.Types.Bool instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s GHC.Types.Int instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s GHC.Num.Integer.Integer instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s GHC.Types.Double instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s GHC.Types.Char instance (Test.LessArbitrary.LessArbitrary s k, Test.LessArbitrary.LessArbitrary s v) => Test.LessArbitrary.LessArbitrary s (k, v) instance (Test.LessArbitrary.LessArbitrary s k, GHC.Classes.Ord k) => Test.LessArbitrary.LessArbitrary s (Data.Set.Internal.Set k) instance (Test.LessArbitrary.LessArbitrary s k, GHC.Classes.Eq k, GHC.Classes.Ord k, Data.Hashable.Class.Hashable k, Test.LessArbitrary.LessArbitrary s v) => Test.LessArbitrary.LessArbitrary s (Data.HashMap.Internal.HashMap k v) instance Test.LessArbitrary.StartingState s => Test.LessArbitrary.LessArbitrary s Data.Scientific.Scientific instance Test.LessArbitrary.LessArbitrary s a => Test.LessArbitrary.LessArbitrary s (Data.Vector.Vector a) instance Test.LessArbitrary.LessArbitrary s a => Test.LessArbitrary.LessArbitrary s [a] instance (Test.QuickCheck.Property.Testable a, Test.LessArbitrary.LessArbitrary s a) => Test.QuickCheck.Property.Testable (Test.LessArbitrary.CostGen s a) instance forall k s (a :: k -> *) (b :: k -> *). (Test.LessArbitrary.GLessArbitrary s a, Test.LessArbitrary.GLessArbitrary s b, GHC.TypeNats.KnownNat (Test.LessArbitrary.SumLen a), GHC.TypeNats.KnownNat (Test.LessArbitrary.SumLen b), GHC.TypeNats.KnownNat (Test.LessArbitrary.Cheapness a), GHC.TypeNats.KnownNat (Test.LessArbitrary.Cheapness b)) => Test.LessArbitrary.GLessArbitrary s (a GHC.Generics.:+: b) instance forall k s (f :: k -> *) (c :: GHC.Generics.Meta). Test.LessArbitrary.GLessArbitrary s f => Test.LessArbitrary.GLessArbitrary s (GHC.Generics.C1 c f) instance forall k s (f :: k -> *) (c :: GHC.Generics.Meta). Test.LessArbitrary.GLessArbitrary s f => Test.LessArbitrary.GLessArbitrary s (GHC.Generics.S1 c f) instance forall k s (f :: k -> *) (m :: GHC.Generics.Meta). Test.LessArbitrary.GLessArbitrary s f => Test.LessArbitrary.GLessArbitrary s (GHC.Generics.D1 m f) instance Test.LessArbitrary.GLessArbitrary s GHC.Generics.U1 instance forall k s (a :: k -> *) (b :: k -> *). (Test.LessArbitrary.GLessArbitrary s a, Test.LessArbitrary.GLessArbitrary s b) => Test.LessArbitrary.GLessArbitrary s (a GHC.Generics.:*: b) instance Control.Monad.State.Class.MonadState s (Test.LessArbitrary.CostGen s) instance Test.LessArbitrary.StartingState () module Test.LessArbitrary.Laws lessArbitraryLaws :: forall s a. LessArbitrary s a => (a -> Bool) -> Laws