title: Why does Temporal not extend Comparable in Java 8 jsr310
body: <p>The documentation for <a href="http://docs.oracle.com/javase/8/docs/api/java/time/temporal/Temporal.html" rel="noreferrer">java.time.temporal.Temporal</a> contains the following note:</p>
  
  <blockquote>
    <p>Implementation Requirements: [...] All implementations must be Comparable.</p>
  </blockquote>
  
  <p>Why does Temporal not just extend Comparable?</p>
  
  <p><strong>Background:</strong> I want to work with comparable temporals (not with subtypes like LocalDateTime etc.) and have to resort to a somewhat illegible type <code>&lt;T extends Temporal &amp; Comparable&lt;T&gt;&gt;</code> which also messes up NetBeans' auto-complete feature.</p>
  
  <p><strong>Edit:</strong> I want to implement a temporal interval. The obvious implementations for contains(Interval i), contains(Temporal t), overlaps(...), adjoins(...) etc. use Comparable::compareTo(Comparable c) to compare the start and end points, but for interoperability (toDuration(), parse(CharSequence cs)) I need e.g. Duration::between(Temporal s, Temporal e) or SubtypeOfTemporal::parse(CharSequence cs) (yielding Temporal).</p>