title: Kind Polymorphic Tuples
body: <p>I noticed with <code>PolyKinds</code> and <code>DataKinds</code> the following compiles fine:</p>
  
  <pre><code>data Pair a b
  data Test = Test
  type Test2 = Pair 'Test 'Test
  </code></pre>
  
  <p>However:</p>
  
  <pre><code>type Test3 = ('Test, 'Test)
  </code></pre>
  
  <p>fails, presumably as <code>(,)</code> is not kind polymorphic, which makes sense as it makes values out of it's type arguments and you can't make values of types which are not of kind <code>*</code>.</p>
  
  <p>Is there a library that has kind polymorphic tuples (to save me reinventing the wheel)?</p>
  
  <p>I do realise that that unlike real tuples, kind polymorphic tuples will only exist on the type level, but that's all I need for my purposes. </p>