<> <> <<>> <> <> DIRECTORY Rope USING [ROPE]; IPErrors: CEDAR DEFINITIONS = BEGIN MasterErrorType: TYPE = { BoundsFault, InvalidArgs, LimitExceeded, MalformedSkeleton, MarkMismatch, MissingBody, NarrowFailed, StackOverflow, StackUnderflow, UndefinedProperty, Unimplemented, WrongType }; MasterWarningType: TYPE = { InvalidArgs, NullValue, Unimplemented }; AppearanceErrorType: TYPE = { Unimplemented }; AppearanceWarningType: TYPE = { Unimplemented }; MasterError: ERROR[type: MasterErrorType]; MasterWarning: SIGNAL[type: MasterWarningType]; AppearanceError: SIGNAL[type: AppearanceErrorType]; AppearanceWarning: SIGNAL[type: AppearanceWarningType]; Bug: ERROR; Error: TYPE = RECORD[ SELECT class: * FROM Me => [type: MasterErrorType], Mw => [type: MasterWarningType], Ae => [type: AppearanceErrorType], Aw => [type: AppearanceWarningType], ENDCASE ]; RopeFromError: PROC[error: Error] RETURNS[Rope.ROPE]; END.