class UInt256 implements UInt256Value<UInt256> {

  @Override
  public long toLong() {
    if (!fitsLong()) {
      throw new ArithmeticException("Value does not fit a 8 byte long");
    }
    return (((long) this.ints[INTS_SIZE - 2]) << 32) | (((long) (this.ints[INTS_SIZE - 1])) & LONG_MASK);
  }

  private  UInt256(Bytes32 bytes);
  private  UInt256(long value);
  private  UInt256(int[] ints);

}