<> <> <> <> DIRECTORY ; UncountedAssignHack: CEDAR DEFINITIONS = BEGIN AssignResult: TYPE = { success, -- assignment was successful typesNE, -- types were not equal sizesNE, -- sizes were not equal problem -- some other problem }; EqualResult: TYPE = { equal, -- objects were equal typesNE, -- types were not equal sizesNE, -- sizes were not equal contentsNE, -- contents were not equal problem -- either not comparable or some other problem }; ProblemKind: TYPE = { noProblem, -- no problem nilRef, -- ref = NIL typeIsRC, -- type is REF containing tooLong, -- object is too long (> Allocator.maxSmallBlockSize words) tooShort}; -- object is too small (probably damaged) UncountedSmallAssignProc: PUBLIC PROC [dst: REF, src: REF] RETURNS [AssignResult]; UncountedSmallAssignPlease: PUBLIC PROC [dst: REF, src: REF]; UncountedSmallNewProc: PUBLIC PROC [src: REF] RETURNS [dst: REF _ NIL]; UncountedSmallEqualProc: PUBLIC PROC [ref1, ref2: REF] RETURNS [EqualResult]; DiagnoseProblemProc: PUBLIC PROC [ref: REF] RETURNS [ProblemKind]; END.