title: Is it possibile to negate type parameter constraint in Haskell?
body: <p>In Haskell, it's possible to add constraints to a type parameter.</p>
  
  <p>For example:</p>
  
  <pre><code>foo :: Functor f =&gt; f a
  </code></pre>
  
  <p><strong>The question:</strong> is it possible to negate a constraint?</p>
  
  <p>I want to say that <code>f</code> can be anything except <code>Functor</code> for example.</p>
  
  <p><strong>UPD:</strong></p>
  
  <p>So it comes from the idea of how to map the bottom nested Functor.
  Let's say I have <code>Functor a</code> where <code>a</code> can be a <code>Functor b</code> or not and the same rules works for <code>b</code>.</p>