title: Why can classes be used as type parameters and what for?
body: <p>I've accidentally discovered that the following is a perfectly compiling code:</p>
  
  <pre><code>class SomeClass a
  
  someValue :: Maybe (SomeClass a)
  someValue = undefined
  </code></pre>
  
  <p>I'm only used to seeing classes in type constraints, so I don't understand why this code typechecks and what's the purpose of using classes that way.</p>
  
  <p>I'm on GHC 7.6.2.</p>