Ещё одна проблемка.## Код:
```
MODULE JuiceFiles;
…
Rider* = EXTENSIBLE RECORD (** Riders are the access mechanisms for files. *)
         eof*: BOOLEAN; (** Rider has reached the end of the file. *)
         res*: INTEGER; (** Rider operation result code. *)
         buf: Buffer;
         org, offset: INTEGER
      END;
…
PROCEDURE ReadBytes(VAR R: Rider; VAR x: ARRAY OF BYTE; n: INTEGER);
      VAR
         F: File;
         xpos, min, remaining, offset: INTEGER;
         buf: Buffer;
   BEGIN
      ASSERT(LEN(x) >= n);
      buf := R.buf; F := buf.F;
      xpos := 0; offset := R.offset;
      WHILE n > 0 DO
         IF (R.org # buf.org) OR (offset >= BufSize) THEN
            set(R, F, R.org + offset); buf := R.buf; offset := R.offset;
         END;
         remaining := buf.size - offset;
         IF remaining = 0 THEN R.res := n; R.eof := TRUE; RETURN
         ELSE (* min := MIN(remaining, n) *)
            IF n > remaining THEN min := remaining ELSE min := n END;
         END;
         S.MOVE(S.ADR(buf.data) + offset, S.ADR(x) + xpos, min);
         INC(offset, min); R.offset := offset; INC(xpos, min); DEC(n, min);
      END;
      R.res := 0; R.eof := FALSE
   END ReadBytes;
…
PROCEDURE ReadChar*(VAR R: Rider; VAR x: CHAR);
   BEGIN
      ReadBytes(R, x[actual parameter corresponding to open array is not an array], 1)
   END ReadChar;
…
PROCEDURE ReadSInt*(VAR R: Rider; VAR x: SHORTINT);
BEGIN
      ReadBytes(R, x[actual parameter corresponding to open array is not an array], 1)
   END ReadSInt;
…
PROCEDURE ReadInt*(VAR R: Rider; VAR x: INTEGER);
…
```
Чтобы не переписывать JuiceFiles по примеру Stores и не иметь зависимостей от модулей ВВ, какие в данном случае нужно внести минимальные изменения?