Significance of scoped type variables standing for type variables and not types : <p>In the GHC <a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#lexically-scoped-type-variables" rel="noreferrer">documentation</a> for the ScopedTypeVariables extension, the  overview states the following as a design principle:</p>

<blockquote>
  <p>A scoped type variable stands for a type <em>variable</em>, and not for a <em>type</em>. (This is a change from GHC’s earlier design.)</p>
</blockquote>

<p>I know the general purpose of the scoped type variables extension, but I don't know the implications of the distinction made here between standing for type variables and standing for types. What is the significance of the difference, from the perspective of users of the language?</p>

<p>The comment above alludes to two designs which approached this decision differently and made different tradeoffs. What was the alternative design, and how does it compare to the one currently implemented?</p>
