title: Scala ~> (tilde greater than) operator
body: <p>I have the following scala class definition (found in a paper), modeling categories:</p>
  
  <pre><code>trait Category[~&gt;[_, _]] {
      def compose[A, B, C]
       (f: B ~&gt; C)
       (g: A ~&gt; B)
       : A ~&gt; C
      def id[A]: A ~&gt; A
  }
  </code></pre>
  
  <p>can someone explain me what the '~>' means in the Category type parameter, and in the methods return type? 
  Or direct me to a resource that explains it...
  I'm new to Scala (coming from Java), so forgive me if that's something a scala user should have known...
  Thank you in advance</p>