title: How to break|break|return in a Haskell list comprehension
body: <p>I want to return all the cubes (x^3) that are less than a parameter Int using a list comprehension.  I have the following:</p>
  
  <pre><code>cubesLessThanN :: Int -&gt; [Int]  
  cubesLessThanN int = [if x * x * x &lt;= int then x else * | x &lt;- [0..int]]
  </code></pre>
  
  <p>The asterisk is where I am having the problem.  I kinda want to stop processing the loop once the <code>else</code> happens.  The final <code>[list]</code> should only have the cubes, not the other values of <code>x</code>.  I don't care really how it happens, but would like to know the options, and what the differences are (if any).</p>
  
  <p>If I try to return <code>null</code>, <code>Nothing</code>, <code>''</code>, and a few other ones. I know I am supposed to return a type of <code>int</code> if I return anything at all.</p>