title: Haskell QuickCheck generate random data for function with many input variables
body: <p>I have a function with the following type signature</p>
  
  <pre><code>rndListIndex :: Double -&gt; Double -&gt; Double -&gt; Double
  rndListIndex maxIdx r1 r2 = …
  </code></pre>
  
  <ul>
  <li>the first input should be a value coming from a <strike>non-negative</strike> strictly positive integer</li>
  <li>the second and third input are required to be within the closed interval [0.0,1.0] otherwise the function makes no sense</li>
  </ul>
  
  <p>the function has the property of </p>
  
  <pre><code>prop_alwaysLessThanMaxIdx idx r1 r2 = (rndListIndex idx r1 r2 &lt;= idx)
  </code></pre>
  
  <p>how do I generate random data for <code>maxIdx</code> and <code>r1</code>,<code>r2</code> separately; I know of the function <code>choose</code>but do not know how to use it with more than one input variable.</p>
  
  <p>For now I have tested the Property with fixed <code>idx</code>, which is not the way it should be tested.</p>