Там несколько конкретных примеров Stores. Думал, что по имени базового типа и именам абстрактных методов можно найти...

Команда на сохранение: wr.WriteStore(x)
## Код:
```
Star = POINTER TO RECORD (Stores.Store)
         point: Point;
         owner: Gamer;
         buildTurn, totalBuildTurns: INTEGER;
         slots: ARRAY playersCount OF RECORD
            ships: Ships;
            dest: Ship
         END
      END;

      Ship = POINTER TO RECORD (Stores.Store)
         destroyed: BOOLEAN;
         point: Point;
         dest, port: Star;
         speed, force: REAL;
         (* non serializable fields: *)
         turnDistance: INTEGER
      END;

      Ships = RECORD
         n: INTEGER;
         buff: POINTER TO ARRAY OF Ship
      END;
```
## Код:
```
PROCEDURE (star: Star) Externalize (VAR wr: Stores.Writer);
      VAR i: INTEGER;
   BEGIN
      star.point.Externalize(wr);
      wr.WriteStore(star.owner);
      wr.WriteInt(star.buildTurn);
      wr.WriteInt(star.totalBuildTurns);
      FOR i := 0 TO playersCount - 1 DO
         star.slots[i].ships.Externalize(wr);
         wr.WriteStore(star.slots[i].dest)
      END
   END Externalize;

   PROCEDURE (star: Star) Internalize (VAR rd: Stores.Reader);
      VAR store: Stores.Store; i: INTEGER;
   BEGIN
      star.point.Internalize(rd);
      rd.ReadStore(store);
      IF store # NIL THEN star.owner := store(Gamer) END;
      rd.ReadInt(star.buildTurn);
      rd.ReadInt(star.totalBuildTurns);
      FOR i := 0 TO playersCount - 1 DO
         star.slots[i].ships.Internalize(rd);
         rd.ReadStore(store);
         IF store # NIL THEN star.slots[i].dest := store(Ship) END
      END
   END Internalize;
```
