title: How to apply partial functions to list of tuples
body: <p>The title of this question might sound misleading, but I wasnt sure how else to explain what I'm trying to do.</p>
  
  <p>I'm experimenting with non-deterministic data structures. I'm trying to produce all possible combinations of a set of partially apply operators and a list of tuples:</p>
  
  <pre><code>-- test.hs
  makeTupleList :: (Int, Int) -&gt; [(Int, Int)] 
  makeTupleList (a, b) = ZipList [(+2), (-2)] &lt;*&gt; ZipList [a, b]
  </code></pre>
  
  <p>I want <code>makeTupleList</code> to return something like:</p>
  
  <pre><code>[(a + 2, b + 2), (a + 2, b - 2), (a - 2, b + 2), (a - 2, b - 2)]
  </code></pre>
  
  <p>But I'm clearly doing something wrong because I keep getting this error:</p>
  
  <pre><code>Couldn't match type `ZipList' with `[]'
  </code></pre>
  
  <p>How do I get my desired result?</p>