code: private void writeObject( ObjectOutputStream aStream ) throws IOException {
          aStream.writeBoolean(absolute);
          aStream.writeBoolean(normalized);
          aStream.writeObject(Collections.unmodifiableList(new ArrayList<Path.Segment>(segments))); // make a copy!
      }
docs: Custom serialization is needed, since the 'segments' list may not be serializable (e.g., java.util.RandomAccessSubList).
  
  @param aStream the input stream to which this object should be serialized; never null
  @throws IOException if there is a problem writing to the stream