title: Swift 4 Conform Comparable protocol and sort method issue
body: <p>I write following Struct that conform to protocol Comparable. </p>
  
  <pre><code>struct Record: Comparable {
      static func &lt; (lhs: Record, rhs: Record) -&gt; Bool {
          if lhs.wins == rhs.wins {
              return lhs.losses &gt; rhs.losses
          }
          return lhs.wins &lt; rhs.wins
      }
  
      var wins: Int
      var losses: Int
  
      init(wins: Int, losses: Int) {
          self.wins = wins
          self.losses = losses
      }
  }
  
  var a1 = Record(wins: 3, losses: 8)
  var b1 = Record(wins: 3, losses: 9)
  var c1 = Record(wins: 4, losses: 7)
  
  var records = [a1, b1, c1]
  
  records.reverse()
  print(records)
  </code></pre>
  
  <p>It all works fine using > &lt; == and sort too. but if I reverse sort method on array of records, It gives me output as follows:</p>
  
  <blockquote>
    <p>[__lldb_expr_48.Record(wins: 4, losses: 7), __lldb_expr_48.Record(wins: 3, losses: 9), __lldb_expr_48.Record(wins: 3, losses: 8)]</p>
  </blockquote>
  
  <p>Highest wins should come first followed by less wins but if wins are equal then less losses should come before more losses. Am I doing anything wrong here or missing something? I am still learning swift so might be possible.</p>