<> <> <> <> <> <<>> DIRECTORY FileSegment USING [Pages, nullPages], Rope USING [ROPE], TimeStamp USING [Stamp, Null]; FileParms: DEFINITIONS = { <> Name: TYPE = Rope.ROPE; ActualId: TYPE = RECORD [ version: TimeStamp.Stamp, -- computed version stamp locator: Name]; -- interpreted by implementation SymbolSpace: TYPE = FileSegment.Pages; <> nullName: Name = NIL; nullFormal: Name = nullName; nullActual: ActualId = [TimeStamp.Null, nullName]; nullSymbolSpace: SymbolSpace = FileSegment.nullPages; <> 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]]; }.