<<>> <> <> <> DIRECTORY PFSNames, RopeParts, Rope; MorePfsNames: CEDAR DEFINITIONS = { ROPE: TYPE ~ Rope.ROPE; RopePart: TYPE ~ RopeParts.RopePart; Version: TYPE ~ PFSNames.Version; Component: TYPE ~ PFSNames.Component; PATH: TYPE ~ PFSNames.PATH; NamePart: TYPE ~ RECORD [base: ROPE, start: INT _ 0, len: INT _ INT.LAST]; <> ConsComponent: PROC [name: RopePart, version: Version _ [none]] RETURNS [Component]; ConstructComponent: PROC [name: NamePart, version: Version _ [none]] RETURNS [Component]; ComponentName: PROC [Component] RETURNS [RopePart]; <> ComponentToRope: PROC [Component] RETURNS [ROPE]; VersionToRope: PROC [Version] RETURNS [ROPE]; Replace: PROC [base: PATH, start: INT _ 0, len: INT _ INT.LAST, with: PATH] RETURNS [PATH]; Cons1: PROC [component: Component, absolute, directory: BOOL _ FALSE, unparsed: REF _ NIL] RETURNS [name: PATH]; <> }.