title: Why isn't an order type used for comparisons in OCaml?
body: <p>I have yet to find a suitable answer for an OCaml design decision, and hope one of those here with in-depth knowledge of OCaml's implementation can shed some light.</p>
  <p>In SML, if we evaluate <code>Int.compare(6, 9)</code> we get <code>LESS</code> which is a constructor for the <code>order</code> type (the others being <code>GREATER</code> and <code>EQUAL</code>). In OCaml, if we evaluate <code>compare 6 9</code> we get <code>-1</code>.</p>
  <p>Was there a specific reason to favor having comparison functions return zero, a negative number, or a positive number in OCaml's standard library, rather than an algebraic data type as in SML?</p>