
    <<FileParms.mesa>>
        <<Copyright  1985 by Xerox Corporation.  All rights reserved.>>
        <<Satterthwaite, 23-Mar-82 16:30:19>>
        <<Maxwell, August 2, 1983 10:46 am>>
        <<Russ Atkinson (RRA) March 6, 1985 10:09:00 pm PST>>
    <<>>
    DIRECTORY
        FileSegment USING [Pages, nullPages],
        Rope USING [ROPE],
        TimeStamp USING [Stamp, Null];

    FileParms: DEFINITIONS = {

        <<data types>>

            Name: TYPE = Rope.ROPE;

            ActualId: TYPE = RECORD [
                version: TimeStamp.Stamp,  -- computed version stamp
                locator: Name];  -- interpreted by implementation

            SymbolSpace: TYPE = FileSegment.Pages;

        <<constants>>

            nullName: Name = NIL;
            nullFormal: Name = nullName;
            nullActual: ActualId = [TimeStamp.Null, nullName];
            nullSymbolSpace: SymbolSpace = FileSegment.nullPages;   

        <<op record>>

            BindingProc: TYPE = PROC [actual: ActualId];

            Ops: TYPE = RECORD [
                Binding: PROC [
                    formalId, formalType: Name, defaultLocator: Name _ nullName,
                    binder: BindingProc],
                Acquire: PROC [Name, ActualId] RETURNS [SymbolSpace],
                Release: PROC [SymbolSpace],
                Forget: PROC [ActualId]];

            }.

