/usr/share/doc/libghc-quickcheck2-doc/html/Test-QuickCheck-Arbitrary.html is in libghc-quickcheck2-doc 2.4.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Test.QuickCheck.Arbitrary</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Test-QuickCheck-Arbitrary.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Test-QuickCheck-Arbitrary.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">QuickCheck-2.4.2: Automatic testing of Haskell programs</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Test.QuickCheck.Arbitrary</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Arbitrary and CoArbitrary classes
</a><ul><li><a href="#g:2">Helper functions for implementing arbitrary
</a></li><li><a href="#g:3">Helper functions for implementing shrink
</a></li><li><a href="#g:4">Helper functions for implementing coarbitrary
</a></li><li><a href="#g:5">Generators which use arbitrary
</a></li></ul></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Arbitrary">Arbitrary</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:arbitrary">arbitrary</a> :: <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li><a href="#v:shrink">shrink</a> :: a -> [a]</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:CoArbitrary">CoArbitrary</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:coarbitrary">coarbitrary</a> :: a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> c -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> c</li></ul></li><li class="src short"><a href="#v:arbitrarySizedIntegral">arbitrarySizedIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:arbitraryBoundedIntegral">arbitraryBoundedIntegral</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:arbitrarySizedBoundedIntegral">arbitrarySizedBoundedIntegral</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:arbitrarySizedFractional">arbitrarySizedFractional</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:arbitraryBoundedRandom">arbitraryBoundedRandom</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/libghc-random-doc/html/System-Random.html#t:Random">Random</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:shrinkNothing">shrinkNothing</a> :: a -> [a]</li><li class="src short"><a href="#v:shrinkList">shrinkList</a> :: (a -> [a]) -> [a] -> [[a]]</li><li class="src short"><a href="#v:shrinkIntegral">shrinkIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> [a]</li><li class="src short"><a href="#v:shrinkRealFrac">shrinkRealFrac</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFrac">RealFrac</a> a => a -> [a]</li><li class="src short"><a href="#v:-62--60-">(><)</a> :: (<a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a) -> (<a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a) -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a</li><li class="src short"><a href="#v:coarbitraryIntegral">coarbitraryIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b</li><li class="src short"><a href="#v:coarbitraryReal">coarbitraryReal</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Real">Real</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b</li><li class="src short"><a href="#v:coarbitraryShow">coarbitraryShow</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b</li><li class="src short"><a href="#v:vector">vector</a> :: <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> [a]</li><li class="src short"><a href="#v:orderedList">orderedList</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> [a]</li></ul></div><div id="interface"><h1 id="g:1">Arbitrary and CoArbitrary classes
</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Arbitrary" class="def">Arbitrary</a> a <span class="keyword">where</span><a href="src/Test-QuickCheck-Arbitrary.html#Arbitrary" class="link">Source</a></p><div class="doc"><p>Random generation and shrinking of values.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:arbitrary" class="def">arbitrary</a> :: <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitrary" class="link">Source</a></p><div class="doc"><p>A generator for values of the given type.
</p></div><p class="src"><a name="v:shrink" class="def">shrink</a> :: a -> [a]<a href="src/Test-QuickCheck-Arbitrary.html#shrink" class="link">Source</a></p><div class="doc"><p>Produces a (possibly) empty list of all the possible
immediate shrinks of the given value.
</p></div></div><div class="subs instances"><p id="control.i:Arbitrary" class="caption collapser" onclick="toggleSection('i:Arbitrary')">Instances</p><div id="section.i:Arbitrary" class="show"><table><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Char.html#t:Char">Char</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Double">Double</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Float">Float</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integer">Integer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word">Word</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word8">Word8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word16">Word16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word32">Word32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word64">Word64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> ()</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdC">OrdC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdB">OrdB</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdA">OrdA</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:C">C</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:B">B</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> <a href="Test-QuickCheck-Poly.html#t:A">A</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> [a]</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ratio.html#t:Ratio">Ratio</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFloat">RealFloat</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Complex.html#t:Complex">Complex</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Smart">Smart</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Shrink2">Shrink2</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:NonNegative">NonNegative</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:NonZero">NonZero</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Positive">Positive</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:NonEmptyList">NonEmptyList</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:OrderedList">OrderedList</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Fixed">Fixed</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Blind">Blind</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (a -> b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (a, b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Modifiers.html#t:ShrinkState">ShrinkState</a> s a) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Modifiers.html#t:Shrinking">Shrinking</a> s a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Function.html#t:Function">Function</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Function.html#t:Fun">Fun</a> a b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Function.html#t:Function">Function</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (<a href="Test-QuickCheck-Function.html#t::-45--62-">:-></a> a b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> c) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (a, b, c)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> c, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> d) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (a, b, c, d)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> c, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> d, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> e) => <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> (a, b, c, d, e)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:CoArbitrary" class="def">CoArbitrary</a> a <span class="keyword">where</span><a href="src/Test-QuickCheck-Arbitrary.html#CoArbitrary" class="link">Source</a></p><div class="doc"><p>Used for random generation of functions.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:coarbitrary" class="def">coarbitrary</a> :: a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> c -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> c<a href="src/Test-QuickCheck-Arbitrary.html#coarbitrary" class="link">Source</a></p><div class="doc"><p>Used to generate a function of type <code>a -> c</code>. The implementation
should use the first argument to perturb the random generator
given as the second argument. the returned generator
is then used to generate the function result.
You can often use <code><a href="Test-QuickCheck-Gen.html#v:variant">variant</a></code> and <code><a href="Test-QuickCheck-Arbitrary.html#v:-62--60-">><</a></code> to implement
<code><a href="Test-QuickCheck-Arbitrary.html#v:coarbitrary">coarbitrary</a></code>.
</p></div></div><div class="subs instances"><p id="control.i:CoArbitrary" class="caption collapser" onclick="toggleSection('i:CoArbitrary')">Instances</p><div id="section.i:CoArbitrary" class="show"><table><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Char.html#t:Char">Char</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Double">Double</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Float">Float</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integer">Integer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word">Word</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word8">Word8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word16">Word16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word32">Word32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Word.html#t:Word64">Word64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> ()</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdC">OrdC</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdB">OrdB</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:OrdA">OrdA</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:C">C</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:B">B</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> <a href="Test-QuickCheck-Poly.html#t:A">A</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> [a]</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ratio.html#t:Ratio">Ratio</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFloat">RealFloat</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Complex.html#t:Complex">Complex</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (a -> b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (a, b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> c) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (a, b, c)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> c, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> d) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (a, b, c, d)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> b, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> c, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> d, <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> e) => <a href="Test-QuickCheck-Arbitrary.html#t:CoArbitrary">CoArbitrary</a> (a, b, c, d, e)</td><td class="doc empty"> </td></tr></table></div></div></div><h2 id="g:2">Helper functions for implementing arbitrary
</h2><div class="top"><p class="src"><a name="v:arbitrarySizedIntegral" class="def">arbitrarySizedIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitrarySizedIntegral" class="link">Source</a></p><div class="doc"><p>Generates an integral number. The number can be positive or negative
and its maximum absolute value depends on the size parameter.
</p></div></div><div class="top"><p class="src"><a name="v:arbitraryBoundedIntegral" class="def">arbitraryBoundedIntegral</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitraryBoundedIntegral" class="link">Source</a></p><div class="doc"><p>Generates an integral number. The number is chosen uniformly from
the entire range of the type. You may want to use
<code><a href="Test-QuickCheck-Arbitrary.html#v:arbitrarySizedBoundedIntegral">arbitrarySizedBoundedIntegral</a></code> instead.
</p></div></div><div class="top"><p class="src"><a name="v:arbitrarySizedBoundedIntegral" class="def">arbitrarySizedBoundedIntegral</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitrarySizedBoundedIntegral" class="link">Source</a></p><div class="doc"><p>Generates an integral number from a bounded domain. The number is
chosen from the entire range of the type, but small numbers are
generated more often than big numbers. Inspired by demands from
Phil Wadler.
</p></div></div><div class="top"><p class="src"><a name="v:arbitrarySizedFractional" class="def">arbitrarySizedFractional</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitrarySizedFractional" class="link">Source</a></p><div class="doc"><p>Generates a fractional number. The number can be positive or negative
and its maximum absolute value depends on the size parameter.
</p></div></div><div class="top"><p class="src"><a name="v:arbitraryBoundedRandom" class="def">arbitraryBoundedRandom</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Bounded">Bounded</a> a, <a href="/usr/share/doc/libghc-random-doc/html/System-Random.html#t:Random">Random</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#arbitraryBoundedRandom" class="link">Source</a></p><div class="doc"><p>Generates an element of a bounded type. The element is
chosen from the entire range of the type.
</p></div></div><h2 id="g:3">Helper functions for implementing shrink
</h2><div class="top"><p class="src"><a name="v:shrinkNothing" class="def">shrinkNothing</a> :: a -> [a]<a href="src/Test-QuickCheck-Arbitrary.html#shrinkNothing" class="link">Source</a></p><div class="doc"><p>Returns no shrinking alternatives.
</p></div></div><div class="top"><p class="src"><a name="v:shrinkList" class="def">shrinkList</a> :: (a -> [a]) -> [a] -> [[a]]<a href="src/Test-QuickCheck-Arbitrary.html#shrinkList" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:shrinkIntegral" class="def">shrinkIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> [a]<a href="src/Test-QuickCheck-Arbitrary.html#shrinkIntegral" class="link">Source</a></p><div class="doc"><p>Shrink an integral number.
</p></div></div><div class="top"><p class="src"><a name="v:shrinkRealFrac" class="def">shrinkRealFrac</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFrac">RealFrac</a> a => a -> [a]<a href="src/Test-QuickCheck-Arbitrary.html#shrinkRealFrac" class="link">Source</a></p><div class="doc"><p>Shrink a fraction.
</p></div></div><h2 id="g:4">Helper functions for implementing coarbitrary
</h2><div class="top"><p class="src"><a name="v:-62--60-" class="def">(><)</a> :: (<a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a) -> (<a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a) -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> a<a href="src/Test-QuickCheck-Arbitrary.html#%3E%3C" class="link">Source</a></p><div class="doc"><p>Combine two generator perturbing functions, for example the
results of calls to <code><a href="Test-QuickCheck-Gen.html#v:variant">variant</a></code> or <code><a href="Test-QuickCheck-Arbitrary.html#v:coarbitrary">coarbitrary</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:coarbitraryIntegral" class="def">coarbitraryIntegral</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b<a href="src/Test-QuickCheck-Arbitrary.html#coarbitraryIntegral" class="link">Source</a></p><div class="doc"><p>A <code><a href="Test-QuickCheck-Arbitrary.html#v:coarbitrary">coarbitrary</a></code> implementation for integral numbers.
</p></div></div><div class="top"><p class="src"><a name="v:coarbitraryReal" class="def">coarbitraryReal</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Prelude.html#t:Real">Real</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b<a href="src/Test-QuickCheck-Arbitrary.html#coarbitraryReal" class="link">Source</a></p><div class="doc"><p>A <code><a href="Test-QuickCheck-Arbitrary.html#v:coarbitrary">coarbitrary</a></code> implementation for real numbers.
</p></div></div><div class="top"><p class="src"><a name="v:coarbitraryShow" class="def">coarbitraryShow</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a => a -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> b<a href="src/Test-QuickCheck-Arbitrary.html#coarbitraryShow" class="link">Source</a></p><div class="doc"><p><code><a href="Test-QuickCheck-Arbitrary.html#v:coarbitrary">coarbitrary</a></code> helper for lazy people :-).
</p></div></div><h2 id="g:5">Generators which use arbitrary
</h2><div class="top"><p class="src"><a name="v:vector" class="def">vector</a> :: <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a => <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> [a]<a href="src/Test-QuickCheck-Arbitrary.html#vector" class="link">Source</a></p><div class="doc"><p>Generates a list of a given length.
</p></div></div><div class="top"><p class="src"><a name="v:orderedList" class="def">orderedList</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a, <a href="Test-QuickCheck-Arbitrary.html#t:Arbitrary">Arbitrary</a> a) => <a href="Test-QuickCheck-Gen.html#t:Gen">Gen</a> [a]<a href="src/Test-QuickCheck-Arbitrary.html#orderedList" class="link">Source</a></p><div class="doc"><p>Generates an ordered list of a given length.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
|