code: protected void writeTemporalProposition(ObjectOutputStream s)
              throws IOException {
          if (this.interval instanceof SimpleInterval) {
              long start = this.interval.getMinStart();
              long finish = this.interval.getMinFinish();
              Granularity startGran = this.interval.getStartGranularity();
              Granularity finishGran = this.interval.getFinishGranularity();
              if (start == finish && startGran == finishGran) {
                  s.writeChar(0);
                  s.writeLong(start);
                  s.writeObject(startGran);
              } else {
                  s.writeChar(1);
                  s.writeLong(start);
                  s.writeObject(startGran);
                  s.writeLong(finish);
                  s.writeObject(finishGran);
              }
          } else {
              s.writeChar(2);
              s.writeObject(this.interval.getMinStart());
              s.writeObject(this.interval.getMaxStart());
              s.writeObject(this.interval.getStartGranularity());
              s.writeObject(this.interval.getMinFinish());
              s.writeObject(this.interval.getMaxFinish());
              s.writeObject(this.interval.getFinishGranularity());
          }
  
      }
docs: Called while serializing a temporal proposition. It optimizes for when
  the temporal proposition's interval is a {@link SimpleInterval}.
  
  @param s an {@link ObjectOutputStream}.
  @throws IOException when an error occurs during serialization.