title: How do I specify types for Haskell's set builder notation?
body: <p>Specifically, I want to do something like this :</p>
  
  <pre><code>myfunc:: [(Integer, Integer)]
  myfunc = [(x^2 - y^2, 2 * x * y) | x &lt;- [1..], y &lt;- [1.. (x-1)]]
  </code></pre>
  
  <p>When I try to load this through <code>ghci</code> I get </p>
  
  <pre><code>    Warning: Defaulting the following constraint(s) to type `Integer'
           `Integral t' arising from a use of `^' at myfunc.hs:76:20-22
  </code></pre>
  
  <p>So I know that x should obviously be an <code>Integer</code>, how do I go ahead and let Haskell know thats what I want ?</p>