title: `String' is applied to too many type arguments
body: <p>I'm just learning Haskell and I was trying to write a simple program to eliminate the first n characters from a <code>String</code>. This is what I got:</p>
  
  <pre><code>cutString :: (Num n, String str) =&gt; n -&gt; str -&gt; str
  
  cutString n str = case n of
          0 -&gt; tail str
          n -&gt; cutString (n-1) (tail str)
  </code></pre>
  
  <p>GHC gives me this error though, and I can't figure out why:</p>
  
  <pre><code>`String' is applied to too many type arguments
   In the type signature for `cutString':
   cutString :: (Num n, String str) =&gt; n -&gt; str -&gt; str
  </code></pre>