    MODULE GPBinFiles;

    IMPORT
        GPFiles;

    TYPE

      FILE* = POINTER TO RECORD (GPFiles.FILE)
              END;

    PROCEDURE WriteNBytes*(    p0 : FILE;
                           IN  p1 : ARRAY OF BYTE;
                               p2 : INTEGER);

    PROCEDURE EOF*(p0 : FILE) : BOOLEAN;

    PROCEDURE WriteByte*(p0 : FILE;
                         p1 : INTEGER);

    PROCEDURE readNBytes*(    p0 : FILE;
                          OUT p1 : ARRAY OF BYTE;
                              p2 : INTEGER) : INTEGER;

    PROCEDURE getFullPathName*(p0 : FILE) : GPFiles.FileNameArray;

    PROCEDURE length*(p0 : FILE) : INTEGER;

    PROCEDURE readByte*(p0 : FILE) : INTEGER;

    PROCEDURE findOnPath*(IN  p0 : ARRAY OF CHAR;
                          IN  p1 : ARRAY OF CHAR) : FILE;

    PROCEDURE openFile*(IN  p0 : ARRAY OF CHAR) : FILE;

    PROCEDURE createFile*(IN  p0 : ARRAY OF CHAR) : FILE;

    PROCEDURE findLocal*(IN  p0 : ARRAY OF CHAR) : FILE;

    PROCEDURE createPath*(IN  p0 : ARRAY OF CHAR) : FILE;

    PROCEDURE CloseFile*(p0 : FILE);

    END GPBinFiles.