title: Parametric typeclass name
body: <p>Say we have a heterogeneous list</p>
  
  <pre><code>data Nil
  data Cons a b
  </code></pre>
  
  <p>I can write code like this for any typeclass <code>A</code></p>
  
  <pre><code>class AList a
  instance AList Nil
  instance (A x, AList xs) =&gt; AList (Cons x xs)
  </code></pre>
  
  <p>Now, is there a way to generalize that code so it's parametric in <code>A</code>?</p>
  
  <p>Say, like this made up syntax</p>
  
  <pre><code>class List (class A) a
  instance List (class A) Nil
  instance (A x, List (class A) xs) =&gt; List (class A) (Cons x xs)
  </code></pre>