title: How to implement an infinite list of functions in Haskell
body: <p>I am using a version of the Fibonacci function g where:</p>
  
  <pre><code>g :: Integer -&gt; Integer -&gt; Integer
  g i n  |  i==0   = 0
         |  i==1   = n
         |  i&gt;1    = (n*( (g (i-1) n) + (g (i-2) n) ))
  </code></pre>
  
  <p>...such that g i n is the value of gi(n) and the partial definition g i is gi</p>
  
  <p>I now want to define an infinite list of functions: <code>gs :: [ Integer -&gt; Integer ]</code>, such that <code>(gs !! i) is gi</code>.</p>
  
  <p>I want take 5 $ <code>[ g 3 | g &lt;- gs]</code> to give me <code>[0,3,9,36,135]</code>.</p>
  
  <p>Can anyone help me define this infinite list?</p>