1 @jvm.internal.value.DeriveValueType
   2 public final class Interval {
   3     public final int l;
   4     public final int u;
   5 
   6     public Interval(int l, int u) {
   7         if (l > u) throw new IllegalArgumentException();
   8         this.l = l;
   9         this.u = u;
  10     }
  11 
  12     @Override
  13     public boolean equals(Object o) {
  14         if (this == o) return true;
  15         if (o == null || getClass() != o.getClass()) return false;
  16 
  17         Interval that = (Interval) o;
  18 
  19         if (l != that.l) return false;
  20         return u == that.u;
  21     }
  22 
  23     @Override
  24     public int hashCode() {
  25         int result = l;
  26         result = 31 * result + u;
  27         return result;
  28     }
  29 }